一尘不染

在Android中解析嵌套的JSON对象

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"
        }
    },

等等....

到目前为止,通过执行以下操作,我可以非常简单地解析:

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);`

但是,当我尝试将其用作“名称:”时,它将不起作用。

我试过了:

JSONObject businessObject = jObject.getJSONObject("business");
String nameValue = businesObject.getString("name");
System.out.println(nameValue);

当我尝试这样做时,我得到“找不到JSONObject [业务]”。

当我尝试:

String nameValue = offerObject.getString("name");
System.out.println(nameValue);`

我得到了预期的“找不到JSONObject [名称]”。

我在这里做错了什么?我缺少一些基本的东西。


阅读 323

收藏
2020-07-27

共1个答案

一尘不染

好吧,我是个白痴。这可行。

JSONObject businessObject = offerObject.getJSONObject("business");
String nameValue = businessObject.getString("name");
System.out.println(nameValue);

如果我只想想两秒钟,然后再发布…哎呀!

2020-07-27