关于org.json.JSONArray构造JSONArray的问题

JSONArray中不一定每个成员都是JSONObject也可以是其他的,比如:String

 

在项目中,曾遇一个问题,需要传递这样的数据:

{"uuid":"s828ht5b5v","page":"0","categoryList":["b2ehv85ssl","222222","111111"]}


注意categoryList中的值:["b2ehv85ssl","222222","111111"]

这是一个JSONArray,绝不能是String,因为String是有双引号的:"["b2ehv85ssl","222222","111111"]"

原以为JSONArray中的成员都是JSONObject,因此陷入误区,也耽误了很长时间。

 

下面给出这段json正确的构造方法:

JSONArrayjsonArray=newJSONArray();
for(intindex=0;index<breedId.size();index++){
     jsonArray.put(breedId.get(index));
}
json.put("categoryList",jsonArray);


这里用到的类是org.json.JSONObjectorg.json.JSONArray,注意包是:org.json,不是net.sf.json

 

网上说可以使用net.sf.json.JSONArray生成JSONArray,方法确实可行,但是在执行到第5行代码时就自动转成了String格式

"["b2ehv85ssl","222222","111111"]",导致最后的结果变成了不正确的

{"staffuuid":"s828htvb5v","page":"0","categoryList":"[\"111111\",\"222222\",\"b2ehv85ssl\"]"}


因此怀疑这个包下的JSONArray其实就是org.json.JSONObject的格式的字符串,而非真正的JSONArray,否则同样执行第5行代码,不会产生不同的结果。


有清楚的大神希望解答!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值