是这样的,今天尝试二维JSON数组传入,用阿里FastJson转换两次获取值,可是报错,直接上代码,大家帮帮忙看看有什么问题
public static void main(String[] args) throws Exception {
String jsonData = "[{tableName: 1,domainName: 2,description: 3,pkDataType: 4}]";
text(jsonData);
}
public static void text(String jsonData){
String tableName = null, domainName = null, description = null, pkDataType = null;
JSONArray array = JSONArray.parseArray(jsonData);
for (int i = 0; i< array.size(); i++) {
JSONArray arr = array.getJSONArray(i);
for (int j = 0; j < arr.size(); j++) {
JSONObject object = arr.getJSONObject(j);
tableName = object.getString("tableName");
domainName = object.getString("domainName");
description = object.getString("description");
pkDataType = object.getString("pkDataType");
}
System.out.println("tableName = " + tableName);
System.out.println("domainName = " + domainName);
System.out.println("description = " + description);
System.out.println("pkDataType = " + pkDataType);
}
}
报错是在 JSONArray arr = array.getJSONArray(i); 这句话
<pre><code>[{tableName: 1,domainName: 2,description: 3,pkDataType: 4}]
这个不是二维数组,就是一维数组,数组元素是jsonobject
<p>直接定义一个实体类,然后praseObject转成这个实体呀</p>
可以举个例子吗
<p>定义一个类比如A,里面有tablename,domainName 属性,并且get/set了。然后 A a=JSON.praseObject(jsonData,A.class); 然后通过A.tablename,就可以取值了</p>
试试
<p>你应该把报错的堆栈信息发出来</p>
json字符串属性名要加引号,如果值也是字符串也要加引号。json格式了解一下
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。