2015-10-28 2 views
-7

Я получаю ответ json в этом формате.как разобрать этот вложенный ответ json?

{ 
    "apiGroups": 
    { 
     "Affiliate": 
     { 
      "listingsAvailable": 
      { 
       "Beauty_Personal_Care": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:586:821655440?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Eyewear": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:473:662748456716?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Real_Estate": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:897:673143570606?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Jewellery": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:6:315773046?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Furniture": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:580:1894930153?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Tweens_Boys": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:814:934253466?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Automobiles": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:1145:639299259208?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Home_Improvement": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:864:624389489778?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "The_Designer_Studio": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:924:655684426383?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 
       "Fashion_Jewellery": 
       { 
        "listingVersions": 
        { 
         "v1": 
         { 
          "get": "http://affiliate-feeds.snapdeal.com/feed/api/category/v1:1113:672114192240?expiresAt=1446085800024&signature=civtucyhsbufsjzjvqfa" 
         } 
        } 
       }, 

мне нужно, чтобы получить категории, как красота личной гигиены, посуды глаз и соответствующих URLs в ПОЛУЧИТЬ field.How может я цикл через это и получить the.So далеко я пытался, как это и Dont нет, как перейти к следующему Может ли кто-нибудь дать мне советы, как разбирать этот json?

json = jParser.getJSONFromUrl(response); 
JSONObject api = json.getJSONObject("apiGroups"); 
JSONObject affiliate = api.getJSONObject("Affiliate"); 
JSONObject list = affiliate.getJSONObject("listingsAvailable"); 
+2

Возможный дубликат [Parse JSON в JavaScript?] (Http://stackoverflow.com/questions/4935632/parse-json-in-javascript) – milosmns

+0

Ваш json неверен – Jas

ответ

1

Вы можете прочитать documentation о JSONObject класса в Android. В этой документации вы найдете метод keys, который будет «Возвращает итератор имен строк в этом объекте».

Так что вам просто нужно вызвать этот метод и использовать итератор.

Iterator<String> keysIterator = jsonObject.keys(); 
String key; 
while (keysIterator.hasNext()) { 
    key = keysIterator.next(); 
    //use the key to retrieve the data form jsonObject 
} 

Однако, если вы являетесь производителем этого json, вы можете подумать о его изменении. Данные в listingAvailable, вероятно, должны быть в массиве.