在Android中解析嵌套的JSON对象

Lux*_*ode 7 android json

我正在尝试解析一个JSON对象,其中一部分看起来像这样:

{
"offer":{
    "category":"Salon",
    "description":"Use this offer now to enjoy this great Salon at a 20% discount. ",
    "discount":"20",
    "expiration":"2011-04-08T02:30:00Z",
    "published":"2011-04-07T12:00:33Z",
    "rescinded_at":null,
    "title":"20% off at Jun Hair Salon",
    "valid_from":"2011-04-07T12:00:31Z",
    "valid_to":"2011-04-08T02:00:00Z",
    "id":"JUN_HAIR_1302177631",
    "business":{
        "name":"Jun Hair Salon",
        "phone":"2126192989",
        "address":{
            "address_1":"12 Mott St",
            "address_2":null,
            "city":"New York",
            "cross_streets":"Chatham Sq & Worth St",
            "state":"NY",
            "zip":"10013"
        }
    },
Run Code Online (Sandbox Code Playgroud)

等等....

到目前为止,通过这样做,我能够非常简单地解析:

JSONObject jObject = new JSONObject(content);
JSONObject offerObject = jObject.getJSONObject("offer");
String attributeId = offerObject.getString("category");
System.out.println(attributeId);

String attributeValue = offerObject.getString("description");
System.out.println(attributeValue);

String titleValue = offerObject.getString("title");
System.out.println(titleValue);`
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试'名称'时,它将无法正常工作.

我试过了:

JSONObject businessObject = jObject.getJSONObject("business");
String nameValue = businesObject.getString("name");
System.out.println(nameValue);
Run Code Online (Sandbox Code Playgroud)

当我尝试这个时,我得到"JSONObject [business] not found."

当我尝试:

String nameValue = offerObject.getString("name");
System.out.println(nameValue);`
Run Code Online (Sandbox Code Playgroud)

正如预期的那样,我得到"未找到JSONObject [name]".

我在这做错了什么?我遗漏了一些基本的东西......

Lux*_*ode 32

好吧,我是个白痴.这有效.

JSONObject businessObject = offerObject.getJSONObject("business");
String nameValue = businessObject.getString("name");
System.out.println(nameValue);
Run Code Online (Sandbox Code Playgroud)

如果我只想在张贴前两秒钟......杰斯!


Ale*_*ecs 16

这是一个单线解决方案

String myString = myJsonObject.getJSONObject("offer").getJSONObject("business").getString("name");
Run Code Online (Sandbox Code Playgroud)