自己遍历List,组合成需要的json格式的字符串就行了

解决方案 »

  1.   

    Array的话,排序item
    对象的话,改变字段声明顺序
      

  2.   

    改变字段的声明顺序不行啊!我试验过了,"children"是一个list集合,我把他放在最后一个声明,还是不行,"children"还是首先出来,我觉得这个与字段的声明顺序无关。
      

  3.   

     [ "id":"1","text":"哈哈","children":[{"id":"1","text":"01"},{ "id":"2","text":"02" },{"id":"3","text":"03" }]]
    你这是 数组还是对象,有这种写法?
    如果是对象 不用再意 顺序,如果是数组,用reverse倒序一下刚好是你要的顺序 
      

  4.   

    是对象啊!我是用这个给Extjs4.0中的导航栏做tree,我试验过了,对顺序是有要求的,你还有其他方法吗?
      

  5.   

    那可能是EXT里有做排序..跟JS无关.
    JS里对象属性的顺序就是根据你添加属性的顺序..先加的必然在前面
      

  6.   

    这个就是和js无关,是和action中用的JSONArray有关,我是将list格式转换为json格式,然后用json.toString()测试输出,就是上边的顺序,得不到我想要的顺序,哪位前辈有高见啊?小弟急呀!
      

  7.   

    不是说了,自己组合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" }]}
    对于{}括起的,无法控制循序,也不需要控制循序,出现在前面和后面无关紧要,是通过键名称来获取,不是通过下标
      

  8.   

    因为Json类里内部是用Hashmap来存储的 所以输出是按照key来排序可是修改Json中的hashmap为LinkedHashMap
    public JSONObject() {  
            this.map = new LinkedHashMap();  //new HashMap();  
    }  
    或者可以把每个key按照想要的方式加入前缀,比如a_id,b_text,c_chriden就可以了