我目前有以下JSON:
{"content":
[{"uuid":"123132",
"firstname" : "Jon",
"lastname" : "Deer"
...
}
]
}
我要做的是使用Java来获取" uuid"的字符串值。以下是我的代码:
JSONPATH jsonPath = new JSONPATH(json);
String myString = jsonPath.getString("content.uuid");
System.out.println(myString);
结果字符串:[123132] 预期的字符串:123132
是否有另一种方法可以在不使用子字符串的情况下使用JSONPATH获取预期结果(删除字符串的第一个和最后一个字符),因为查看代码会更麻烦?
答案 0 :(得分:7)
由于内容为array
," content.uuid"返回一个字符串列表。但是,当我们调用getString()
方法时,该列表将转换为String(使用toString()
),因此我们得到[123132]
。
获取第一个值的正确方法是jsonPath.getString("content[0].uuid");
答案 1 :(得分:1)
jsonPath的返回值是一个数组,它也是一个有效的JSON结构。如果您需要将数据作为其他类型,例如在这种情况下,你必须自己进行转换,获得你的价值#
检查此page以获取样本及其返回数组的原因。
答案 2 :(得分:0)
google.simple.Json
Jar?这个Jar可以轻松地让你轻松阅读这个JSONObject。
{
"content":
[{"uuid":"123132",
obj_ComplexJson ==> "firstname" : "Jon",
"lastname" : "Deer"
...
}],[],[],[]
}
JSONObject obj_ComplexJson = "{"content":[{}]}""; //this json object contains your Actual Object.
JSONParser parser = new Parser();
JSONArray obj_arr = (JSONArray)parser.parse(obj_ComplexJson.get("content"));
for(JSONObject eachObj : obj_arr){
System.out.println(eachObj.get("uuid"));
..........
..........
}
获取Maven JSON Simple Maven或Direct Jar File