首页 > 编程知识 正文

jsonarray转数组,jsonarray排序

时间:2023-05-04 13:59:29 阅读:60938 作者:4292

我在使用fastjson.jar包

1. jsonarray,jsonobject使用正确的代码如下: ()该getJSONObject函数形成jsonobj的方式非常好,可以避免循环引用和jsonobj后盖前的) ) ) )。

publicjsonarraygetjsonarray ((jsonarrayjsonarray=newjsonarray ) ); JSONarray.add(getjsonobj('name、' ar.arch.lcalplay ) ); JonArray.add(getjsonobj('name,' ar.arch.ticet ) ); JSONarray.add(getjsonobj('name,' ar.arch.hotl ) ); JSONarray.add(getjsonobj('name,' ar.arch.surehotel ) ); 返回JSON array; } publicjsonobjectgetjsonobj (string name,String value ) ) jsonobjectjsonobj=newjsonobject ); Jonobj.put(name,value ); 返回JSobj; }

在此处使用jsonarray可能会发生错误。 wrong代码如下:

JSON array JSON array=new JSON array (; JSON对象JSON obj=new JSON object (; for(intI=0; i3; I ) {JSONobj.put(task_id ),RS.getstring ) (task_id ) }; JSONobj.put(service_name ),RS.getstring ) (service_name ); Jonobj.put(Thread_num ),RS.getstring ) (Thread_num ); Jonobj.put(Delay_time ),RS.getstring ) (Delay_time ); jsonobj.put(last_time ),RS.getstring ) (last_time ); JSONArray.add(JSONobj; }

答疑:其中正确代码的第三句是关键,每次都向新的new发出对象。 否则,循环了三次。 其实我一直在更新对象。 存储在jsonarray中的是最终修改的jsonobj。

这就是在java中一切都是参照的原则。 jsonarray是添加的是对象,但最终添加的是引用。 因此,要添加不同的对象,必须为每个new创建新的对象。

读源代码,这里jsonarray是用List实现的,所以扩展到list.add(Object )也一样,每次添加时,新的new对象会被添加一个。

2 .如何将servlet的doget方法返回到前端

即使doget ()//后端将jsonobject或jsonarray推送到前端,response.getWriter ).write (JSON.tojsonstring ) JSONobj ) ) response.getWriter ().write ) JSON.tojsonstring ) JSONobj ); }

3 .对于3. JSON.toJSONString (),将出现$ref

解决方案是在选项DisableCircularReferenceDetect中禁止循环引用检测

代码:

JSON.tojsonstring(JSONArray,序列化器feature.disablecircularreferencedetect ) )。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。