读书人

关于json转换的有关问题

发布时间: 2013-08-20 17:47:51 作者: rapoo

关于json转换的问题。

[{"i":0,"log":{"WTserverip":"232.32.32.2","date":"2013-05-24",
"gotoclass":"1232","servclass":"1","serverip":"2","state":"2","test1":""
,"test2":"","test3":"","test4":"","test5":"","time":"14:17:25","userip":"253.33.22.32","usernum":"543"}}


上面是java中list转换为json之后的字符串。
log的:后面对应的是一个类,
怎样在转换的时候,把WTserverip,date,gotoclass,servclass,都去掉,只留他们后面“:”的值?
如这样。
[{"i":0,"log":{"232.32.32.2","2013-05-24",
"1232","1","2","2",""
,"","","","","14:17:25","253.33.22.32","543"}}

[解决办法]
引用:
JAVA
Map<String,Object> hashMap=new HashMap<String, Object>();
hashMap.put("type", "read");
hashMap.put("cparam","Hello!" );
Map<String,Object> map=new HashMap<String, Object>();
map.put("cparam", hashMap);
JSONArray result=JSONArray.fromObject(hashMap);
System.out.println(result.toString());
输出格式:[{"cparam":"Hello!","type":"read"}]


JS:

function timerSubmit(){//定时检索后台串口返回数据
$.post("getTimerBack.action",{},//post提交
function(data){ //后台返回数据
data=eval('('+data+')');//JSON转换格式
data=data[0].cparam;
});
}



不对。

你要在后台转换成第二种js的格式,应该不是太好做吧,因为不是标准的格式,应该是在前台处理的吧。
[解决办法]
楼上的解决方法或许有效,但是不是最好的解决方案,我觉得应该先要问清楚为什么要把标准JSON里面的键给去掉。

我看了楼主想转之后的JSON,类似 EXTJS 中 store 中的 grid加载数据的一种方法,其实它是提供了
2种JSON的格式 ,一种是 jsonObj 一种是 jsonArray;楼主想转成的应该是 JsonArray ,
最好的解决方法不是想办法把一个obj 里面的键去掉,而是在你后台都JSON的时候就转成 jsonArray,那么出来的自然是没有键的,类似
['1','2','3'] 这样的;
如果是用的struts 的话 在 xml里面配置好就可以了。如果是直接返回 那就 用 jsonArray.add 进去。
如果楼主的数据源是 service里面返回的 list<Object> 这样的 ,那么就 写个 for 把便利这个List,然后 add 到jsonArray 里面 ,丢到页面就好了。

读书人网 >J2EE开发

热点推荐