2013-04-29 3 views
1

У меня есть JSON объект из следующих действий, и мне нужно разобрать путь строки внутри веб массива в новый массив JSON.Извлечение массива из объекта JSON

"taxonomy": { 
    "source": { 
     "master": { 
      "_id": "5000", 
      "path": "/Appliances/Refrigerators/French Door Bottom Freezers" 
     }, 
     "web": [ 
      { 
       "_id": "6686", 
       "path": "/Appliances/Refrigerators/French Door Bottom Freezers" 
      }, 
      { 
       "_id": "7686", 
       "path": "/Appliances/Refrigerators/Bottom Freezers" 
      } 
     ], 

    }, 

}, 

я написал до этого, но я не уверен, как получить все путь внутри веб массива.

   JSONObject jsonTaxonomy= _blob.optJSONObject("taxonomy"); 
      if(jsonTaxonomy!=null) 
      { 
       if(!jsonTaxonomy.isNull("source")) 
       { 
        JSONObject jsonTaxonomySource= jsonTaxonomy.optJSONObject("source"); 
        if(!jsonTaxonomySource.isNull("web")) 
        { 
         JSONArray jsonTaxonomySourceWeb= jsonTaxonomySource.optJSONArray("web"); 
         if(jsonTaxonomySourceWeb!=null && jsonTaxonomySourceWeb.length()>0) 
         { 
          //Got inside the array 
         } 
        } 
       } 
      } 
+0

'если (jsonTaxonomy! = NULL) {если (! jsonTaxonomy.isNull ("источник")) {}}' может быть заменен на 'если (jsonTaxonomy! = NULL &&! (jsonTaxonomy.isNull "source")) {} ' – Aquillo

+0

u нужно, чтобы все исходное значение добавлялось в веб-массив. –

ответ

1

Без предоставляя вам полный ответ, я уверен, вы сможете найти ответ на этот метод отладки и остановить его на самой внутренней if(). Вы сможете сделать то, что составляет jsonTaxonomySearsWeb, и таким образом, как получить его значения.

+0

Будет ли использоваться jsonTaxonomySearsWeb.getJSONObject (i) .getString (« путь ») и добавление их в массив? – John

+0

Я не эксперт в 'JSONObject', но если это часть цикла, и' i' предоставляется им, это, вероятно, сработает. – Aquillo

0

Измените код на что-то вроде этого: -

JSONObject jsonTaxonomy= _blob.optJSONObject("taxonomy"); 
if(jsonTaxonomy!=null) 
{ 
     JSONObject jsonTaxonomySource = jsonTaxonomy.optJSONObject("source"); 
     if(jsonTaxonomySource!=null) 
     { 
      JSONArray jsonTaxonomySearsWeb= jsonTaxonomySource.optJSONArray("web"); 
      if(jsonTaxonomySearsWeb!=null) 
      { 
       // Traverse through your JSONArray and get each Object & extract path from it. 
      } 
     } 
} 
0

Я немного неясно вопрос. Но, как в моем понимании, вы хотите, чтобы разобрать JSON, если вы хотите сделать это в Java, то вы можете использовать GSON баночку от Google ... Вы также можете проверить простой пример здесь Gson handle object or array

0

Попробуйте, как это ...

 groups = json.getJSONArray(TAG_GROUP); 
     System.out.println("Result Success+++"+groups); 
     for (int i = 0; i < groups.length(); i++) { 
     JSONObject c = groups.getJSONObject(i); 
     String source = c.getString(TAG_SOURCE); 
     System.out.println("Checking ::"+source); 
     String lname = c.getString(TAG_PATH); 
     HashMap<String, String> map = new HashMap<String, String>(); 
     map.put(TAG_SOURCE, source); 
     map.put(TAG_PATH,path); 
     weblist.add(map);  //weblist is your arraylist for both values 
     webpathlist.add(path); //webpathlist is your arraylist for path 
     } 
     List<String> newList = new ArrayList<String>(); 
     newList.addAll(weblist); 
Смежные вопросы