Map map = new HashMap();
map.put("name", "json");
map.put("bool", Boolean.TRUE);
map.put("int", new Integer(1));
map.put("arr", new String[] { "a", "b" });
JSONObject json = JSONObject.fromObject(map);
System.out.println(json);
输出为:
{"arr":["a","b"],"int":1,"bool":true,"name":"json"}暂时可以理解成,取的时候是从后往前取在看例子:Map map = new HashMap();
map.put("name", "json");
map.put("arr", new String[] { "a", "b" });
map.put("int", new Integer(1));
map.put("bool", Boolean.TRUE);
JSONObject json = JSONObject.fromObject(map);
System.out.println(json);输出为:
{"arr":["a","b"],"int":1,"bool":true,"name":"json"}可以看出:数组默认在前,int其次,然后就是boolean和String现在想请问下如何按照我想输出的类型输出
比如说,先是String,然后是数组和boolean

解决方案 »

  1.   

    Ajax 获取数据转换成json,想输出格式看着舒服点
      

  2.   

    你真有意思,你前台JS获取的json难道不是用一个参数来接收,通过key获取value,一般来说根本就看不到json串,我还从来没有看过直接输出json串的做法……
    不知道什么场景需要直接输出json串?
      

  3.   

    也许是我没有说明白,我想看json串是在FireBug看,而并不是输出到页面上显示
    并且格式是我可以控制的
      

  4.   

    Map何来顺序一说?
    重载toString?有意义么?Map是串行化以后被当做字节流发送到浏览器的,跟toString会有关系么?
      

  5.   

    主要是因为FlexGrid  需要按照一定的顺序格式来解析json所以输出到客户段的json格式要固定有其他的办法吗?
      

  6.   

    自己组织成String字符串,要什么格式都行。
      

  7.   


    自己有写,但是先改成json格式的
      

  8.   

    同意,再说json是么有前后之分
      

  9.   

    HashMap是不维持顺序的,它内部会自动排序。
    可以使用LinkedHashMap,这个实现为维持顺序的
      

  10.   

    如果前端是flex的话,可以直接用Object类型接收一下就可以了