2017-06-27 55 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