如何解析jsonarray方括号内容

时间:2017-04-06 16:22:36

标签: java json

我在带有net net.sf.json-lib 2.4的java上尝试这个。

Map<String,Object>[] retrievedList = null;
String getTypeParam = "[{ 'foo': '[1234] server' }, { 'foo': '[1234]' }]";
JSONArray jsonArray = JSONArray.fromObject(getTypeParam);

list = (Map<String, Object>[]) JSONArray.toArray(jsonArray, HashMap.class);

for (int inx = 0; inx < list.length; inx++) {
    System.out.println(list[inx].get("foo").getClass());
    testDAO.insertTestData(list[inx]);
}

如上所述插入第二个数据时,会发生以下错误。

class java.lang.String
class java.util.ArrayList
com.ibatis.common.jdbc.exception.NestedSQLException:   
--- The error occurred in egovframework/sqlmap/com/test/sqlmap-test.xml.  
--- The error occurred while applying a parameter map.  
--- Check the insertTestData-InlineParameterMap.  
--- Check the parameter mapping for the 'foo' property.  
--- Cause: java.lang.NullPointerException

打印完列表后,我可以看到异常是由方括号中的解析错误引起的。

0: [{\"foo\" : \"[1234] server\"}]
1: [{\"foo\" : [1234]}]

如何将“1”作为带方括号的字符串,例如“0”?

请帮忙!

1 个答案:

答案 0 :(得分:0)

如果foo正在返回一个数组,您可以尝试类似foo[0].tostring

的内容

这将显示数组中的零索引(第一个元素),它应该是您要查找的变量。您还必须将其转换为字符串,因为这是一个整数。