2017-06-27 94 views
0

我可以從一個URL以這種方式解析JSON:的Android解析JSON從多個網址

String link1 = "http://www.url.com/test1.json"; 
String link2 = "http://www.url.com/test2.json"; 
private void fetchMovies() { 
    String url = link1; 
    JsonArrayRequest req = new JsonArrayRequest(url, 
      new Response.Listener<JSONArray>() { 
       @Override 
       public void onResponse(JSONArray response) { 
        if (response.length() > 0) { 
         for (int i = 0; i < response.length(); i++) { 
          try { 
           JSONObject movieObj = response.getJSONObject(i); 
           int rank = movieObj.getInt("rank"); 
           String title = movieObj.getString("title"); 
           Movie m = new Movie(rank, title); 
           movieList.add(0, m); 
          } catch (JSONException e) { 
          } 
         } 
         adapter.notifyDataSetChanged(); 
        } 
       } 
      }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
    }); 
    MyApplication.getInstance().addToRequestQueue(req); 
} 

我想從多個網址解析的json。

我想同時解析url1和url2。

我該怎麼做?

+0

有一個** *對象*在'JSON'對象內,**不是**數組。 – Dennis

+0

@丹尼斯我更新了我的帖子。你能檢查它嗎? – Johny

+0

嗨,你不能同時解析兩個'JSON'對象,但你可以連續解析它們(一個接一個)。那麼,我想不出任何假設(虛構)的情況,你需要解析兩個'JSON'對象並將它們保存到一個類中。如果你在一個行業工作,你會意識到服務器端的員工會相應地準備'JSON',所以你不需要同時解析兩個'JSON'。 – Dennis

回答

1

爲什麼不使用「鏈接」作爲數組? 如果你將使用一個數組:

JSONObject jsonObject = new JSONObject(); 
JSONArray keys = jsonObject.getJSONArray("links"); 
int length = keys.length(); 
for (int i = 0; i < length; i++) { 
    new ReadJSON().execute(keys.getString(i)); 
} 

不管怎樣,你把所有的鑰匙,進入一前一後,再查詢每個 編輯:

JSONObject jsonObject = new JSONObject(/*Your links json*/); 
JSONObject links = jsonObject.get("links"); 
Iterator<String> keys = links.keys(); 
while (keys.hasNext()) { 
    new ReadJSON().execute(links.getString(keys.next())); 
} 
+0

'JSON'對象內有一個**對象**,**不是**數組。它不應該是''鏈接:[...]'? – Dennis

+0

我編輯它以表明我得到鑰匙 – fbwnd

+0

@丹尼斯我同意使用鏈接更好,我首先在我的評論中問 我認爲他有一個很好的理由:)如果他將它改爲鏈接,他可以使用我的代碼只是通過JSONArray值 – fbwnd