2

在我的应用程序中,我试图从 facebook 获取最喜欢的音乐、电影、朋友的书籍。到目前为止,我在这里做了。

  1. 我正在向 facebook 请求收藏夹并以 json 格式获取响应。
  2. 现在我想在后台解析这个。

我的问题是解析执行速度很慢。我正在使用 for 循环进行迭代。整个解析需要 8 到 10 秒。所以有什么办法可以更快一点。

public ArrayList<String> parsing()
{
       long time1=System.currentTimeMillis();
      // System.out.println(time1);
       ArrayList<String> urls=new ArrayList<String>();


       int position=0;
    try {       
     String response=Utility.responseSecond;
    JSONObject node1=new JSONObject(response);              
    JSONArray array1=node1.getJSONArray("data");
    int length=array1.length();
    for(int i=0;i<length;i++)
    {
        if(array1.getJSONObject(i).getString("id").equals(friendId.toString()))
        {
            position=i;
        }
    }
       JSONObject node2 = array1.getJSONObject(position);

          try{

              if(node2.has("music"))
              {

         JSONArray array2=node2.getJSONObject("music").getJSONArray("data");
                    JSONObject node4=array2.getJSONObject(0);

                    String name=node4.getString("name");

                    JSONObject node5=node4.getJSONObject("picture");
                    JSONObject node6=node5.getJSONObject("data");
                    String musicsurl=node6.getString("url");




                    urls.add(musicsurl);

              }


                }
          catch(JSONException e)
            {
              e.printStackTrace();
            }

          try{


              if(node2.has("movies"))
              {

                  JSONArray array2=node2.getJSONObject("movies").getJSONArray("data");
                    JSONObject node4=array2.getJSONObject(0);
                    String name=node4.getString("name");

                    JSONObject node5=node4.getJSONObject("picture");
                    JSONObject node6=node5.getJSONObject("data");
                    String moviesurl=node6.getString("url");
                    urls.add(moviesurl);

              }

              }
              catch(JSONException e)
                {
                  e.printStackTrace();
                }

          try{

              if(node2.has("books"))
              {
              JSONArray array2=node2.getJSONObject("books").getJSONArray("data");
                JSONObject node4=array2.getJSONObject(0);
                String name=node4.getString("name");

                JSONObject node5=node4.getJSONObject("picture");
                JSONObject node6=node5.getJSONObject("data");
                String bookurl=node6.getString("url");
                urls.add(bookurl);


              }
          }
              catch(JSONException e)
              {
                e.printStackTrace();
              }

          try{
              if(node2.has("television"))
              {
              JSONArray array2=node2.getJSONObject("television").getJSONArray("data");
                JSONObject node4=array2.getJSONObject(0);
                String name=node4.getString("name");

                JSONObject node5=node4.getJSONObject("picture");
                JSONObject node6=node5.getJSONObject("data");
                String televisionsurl=node6.getString("url");

                urls.add(televisionsurl);

              }
          }
              catch(JSONException e)
              {
                e.printStackTrace();
              }

        } catch (Exception e) {
            Log.i("JSONException", e.getMessage());


            }
    System.out.println("in parsing"+(System.currentTimeMillis()-time1));

    return urls;


   }
4

1 回答 1

2

你不需要自己做,请检查这个: https ://code.google.com/p/google-gson/

它易于使用,而且速度也很快。

于 2013-07-24T09:42:35.827 回答