包含嵌套JSON字符串的JSON对象解析
我真的在努力从JSONObject解析这个包含嵌套JSON字符串的JSON对象解析,json,Json,我真的在努力从JSONObject解析这个 res= { "ldap-container": { "@id": "1", "@name": "easyas", "@last-accessed": "2014-07-12T02:11:19.327Z", "@active": "true", "primary-ldap": {
res= {
"ldap-container":
{
"@id": "1",
"@name": "easyas",
"@last-accessed": "2014-07-12T02:11:19.327Z",
"@active": "true",
"primary-ldap":
{
"@ldap-alias": "easyAs",
"@ldap-query": "(cn=*)",
"@resource-name-attributes": "givenname"
}
}
}
JSONObject jsonObject = new JSONObject(res);
String root = jsonObject.getString("ldap-container");
我想访问每个名称-值对。尝试了JSONParser,但没有,尝试了JSONArray,因为它不是数组,我显然不能
非常欢迎任何指针,谢谢
ldap容器
是一个对象而不是字符串,下面是解析json的方法:
JSONObject jsonObject = new JSONObject(res);
JSONObject root = jsonObject.getJSONObject("ldap-container");
String alias = root.getString("@id");//1
JSONObject primary = root.getJSONObject("primary-ldap");
String alias = primary.getString("@ldap-alias");//easyAs
这是简单的旧JSON——没什么特别的。它是一个“对象”,包含一个“对象”,包含另一个“对象”——没有数组。转到json.org并学习语法(需要5-10分钟),这样会更有意义。如果您想查看对象中的键,JSONObject的org.json版本有一个静态方法
getNames
,它将返回一个键名数组。但是如果您知道名称,只需使用jsonObject.getString
等从“对象”获取值。
var res = {
"ldap-container":
{
"@id": "1",
"@name": "easyas",
"@last-accessed": "2014-07-12T02:11:19.327Z",
"@active": "true",
"primary-ldap":
{
"@ldap-alias": "easyAs",
"@ldap-query": "(cn=*)",
"@resource-name-attributes": "givenname"
}
}
}
var id = res["ldap-container"]["@id"]
var alias = res["ldap-container"]["primary-ldap"]["@ldap-alias"]