包含嵌套JSON字符串的JSON对象解析

包含嵌套JSON字符串的JSON对象解析,json,Json,我真的在努力从JSONObject解析这个 res= { "ldap-container": { "@id": "1", "@name": "easyas", "@last-accessed": "2014-07-12T02:11:19.327Z", "@active": "true", "primary-ldap": {

我真的在努力从JSONObject解析这个

   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"]