使用了net.sf.json.JSONObject构造jsonx,下面两句第一句可以,第二句报错,说不是一个json数组。
JSONObject jsonObject = JSONObject.fromObject(data);
itemArray = JSONArray.fromObject(jsonObject.getJSONArray("itemz"));
后台这样记录的,然后我绞尽脑汁没想出来什么样的字符串能构造呈JSONObject ,但是提取里面的数组会报错。想了很多,比如在里面写了单引号、大括号、逗号等,都会在第一句直接报错。
求大牛指点:怎么写能通过第一句通不过第二句?
json
java
net.sf.json
------解决方案--------------------
你那个就不是json数组吧 他必须是数组类型的吧?
------解决方案--------------------
JSONArray.fromObject(jsonObject.getJSONArray("itemz"));
反正我举得很怪
------解决方案--------------------
本来就返回的是一个jsonarray了。
temArray = JSONArray.fromObject(jsonObject.getJSONArray("itemz"));改成
temArray = jsonObject.getJSONArray("itemz");
如果不知道数据怎么样的可以反过来构建啊,如
看一下输入就知道了
JSONObject jsonObject = new JSONObject();
JSONArray array = new JSONArray();
array.add("test");
array.add("test1");
jsonObject.put("itemz",array);
System.out.println(jsonObject.toString(4);
------解决方案--------------------
最大的可能就是没有itemz这个键,否则itemz不单单放数组,这个可能不大。
可以用containsKey(key)判断一下,我有过一次遇到这种问题是这种原因。