json数据怎么按照固定顺序输出呢?

辛古仑 2013-07-28 06:22:03
json数据怎么按照固定的顺序输出呢?我用到了List和JSONArray
这是我想要的结果:["id":"1","text":"哈哈","children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{"id":"3","text":"03" }]]
但是输出是这样的["children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{ "id":"3","text":"03" }] ,"id":"1","text":"哈哈"]
...全文
43734 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
似梦飞花 2015-05-16
  • 打赏
  • 举报
回复
自己取出对象的属性值后放到数组里 对象的遍历是无序的 数组是有序的
KK3K2005 2015-05-16
  • 打赏
  • 举报
回复
这个世界有2中类型集合 数组: 这个是有序的 hash表:就是 键值对的集合 这个是无序的 或者说是根据键的字典顺序排的 只要是 数组 肯定是 按元素的次序排列的 你的问题本质就是要 按次序 输出 hash集合的成员 那就转成 数组 在输出
望远镜Monkey 2015-05-16
  • 打赏
  • 举报
回复
同求解决方案。想让json数据按照对象字段的顺序输出。
xuaner22 2015-05-05
  • 打赏
  • 举报
回复
我也有这样的问题,怎么解决的啊啊啊
dadaowolaiye 2014-10-15
  • 打赏
  • 举报
回复
我想问楼主你最后到底咋解决的,我也遇到同样的问题,急啊
a4565219 2013-12-17
  • 打赏
  • 举报
回复 1
因为Json类里内部是用Hashmap来存储的 所以输出是按照key来排序。。。可是修改Json中的hashmap为LinkedHashMap public JSONObject() { this.map = new LinkedHashMap(); //new HashMap(); } 或者可以把每个key按照想要的方式加入前缀,比如a_id,b_text,c_chriden就可以了
fzfei2 2013-07-29
  • 打赏
  • 举报
回复
引用 楼主 u010045743 的回复:
json数据怎么按照固定的顺序输出呢?我用到了List和JSONArray 这是我想要的结果:["id":"1","text":"哈哈","children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{"id":"3","text":"03" }]] 但是输出是这样的["children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{ "id":"3","text":"03" }] ,"id":"1","text":"哈哈"]
[ "id":"1","text":"哈哈","children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{"id":"3","text":"03" }]] 你这是 数组还是对象,有这种写法? 如果是对象 不用再意 顺序,如果是数组,用reverse倒序一下刚好是你要的顺序
辛古仑 2013-07-29
  • 打赏
  • 举报
回复
改变字段的声明顺序不行啊!我试验过了,"children"是一个list集合,我把他放在最后一个声明,还是不行,"children"还是首先出来,我觉得这个与字段的声明顺序无关。
辛古仑 2013-07-29
  • 打赏
  • 举报
回复
谢谢前辈哦!我发的只是一个对象的数据,还有类似的几个呢,他们几个在一起就要用[],我还以为用系统自带的方法就可以控制输出结果的顺序呢,谢谢你的指点。
Go 旅城通票 2013-07-29
  • 打赏
  • 举报
回复
不是说了,自己组合json格式的字符串就行了,用系统的组件无法控制实际生成的格式。。除非你自己扩展系统的方法。。 如果就json格式来说,你发的是错的 ["id":"1","text":"哈哈","children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{"id":"3","text":"03" }]] 应该是{}括起,而不是[] {"id":"1","text":"哈哈","children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{"id":"3","text":"03" }]} 对于{}括起的,无法控制循序,也不需要控制循序,出现在前面和后面无关紧要,是通过键名称来获取,不是通过下标
辛古仑 2013-07-29
  • 打赏
  • 举报
回复
这个就是和js无关,是和action中用的JSONArray有关,我是将list格式转换为json格式,然后用json.toString()测试输出,就是上边的顺序,得不到我想要的顺序,哪位前辈有高见啊?小弟急呀!
地狱羔羊 2013-07-29
  • 打赏
  • 举报
回复
那可能是EXT里有做排序..跟JS无关. JS里对象属性的顺序就是根据你添加属性的顺序..先加的必然在前面
辛古仑 2013-07-29
  • 打赏
  • 举报
回复
是对象啊!我是用这个给Extjs4.0中的导航栏做tree,我试验过了,对顺序是有要求的,你还有其他方法吗?
潮起潮落 2013-07-28
  • 打赏
  • 举报
回复
引用 2 楼 KongHuLu 的回复:
你可以先排序
Array的话,排序item 对象的话,改变字段声明顺序
潮起潮落 2013-07-28
  • 打赏
  • 举报
回复
你可以先排序
Go 旅城通票 2013-07-28
  • 打赏
  • 举报
回复
自己遍历List,组合成需要的json格式的字符串就行了

87,917

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧