首页 > 编程知识 正文

jsonarray转数组,jsonarray转对象数组

时间:2023-05-03 17:25:20 阅读:60941 作者:2841

我在使用fastjson.jar包

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

http://www.Sina.com/viewplaincopypublicjsonarraygetjsonarray () { 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 ) ); returnjsonarray; } publicjsonobjectgetjsonobj (字符串名称,字符串值) jsonobjectjsonobj=newjsonobject ); Jonobj.put(name,value ); returnjsonobj; }

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

33558 www.Sina.com/viewplaincopyjsonarrayjsonarray=newjsonarray (; jsonobjectjsonobj=newjsonobject (; 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方法返回到前端

33558 www.Sina.com/viewplaincopydoget ()//后端将jsonobject或jsonarray推送到前端时response.getWriter ).write }

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

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

代码:

33558 www.Sina.com/viewplaincopyjson.tojsonstring (JSON array,串行化器feature.disablecircularreferencedetect ) )

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