【问题标题】:how to get data from Json object?如何从 Json 对象中获取数据?
【发布时间】:2013-04-10 06:50:08
【问题描述】:

我正在开发一个与 facebook 集成的 android 应用程序。我正在使用 fql 查询从 facebook 获取信息。我的 fql 方法是

                void runfql(){
                String fqlQuery = "SELECT uid, name, pic_small,birthday FROM user WHERE uid IN " +
                  "(SELECT uid2 FROM friend WHERE uid1 = me() )";
                Bundle params = new Bundle();
                params.putString("q", fqlQuery);
                Session session = Session.getActiveSession();
                Request request = new Request(session,
                "/fql",                         
                params,                         
                HttpMethod.GET,                 
                new Request.Callback(){         
                        public void onCompleted(Response response) {

                        JSONObject myjson=response.getGraphObject().getInnerJSONObject();
                        Log.d("ResultResultResult: " ,""+myjson);                           
                        }                  
                    }); 
                    Request.executeBatchAsync(request);  

                } 

myjson 对象包含我想要的所有信息。像这样

 {"data":[{"uid":536089174,"birthday":"July 22","name":"Usman Aslam Sheikh"},{"uid":581379174,"birthday":"July 26","name":"Ammar Khalid"}

问题是如何将这些信息存储到不同的数组中??

请为此目的修改一些代码。?

【问题讨论】:

  • 您是否在寻找 JSONObject 和 JSONArray?还是 GSON?

标签: java android json facebook-fql


【解决方案1】:
String jsonString = yourstring;
JSONObject jsonResult = new JSONObject(jsonString);
JSONArray data = jsonResult.getJSONArray("data");
if(data != null) {
    String[] names = new String[data.length()];
    String[] birthdays = new String[data.length()];
    for(int i = 0 ; i < data.length() ; i++) {
        birthdays[i] = data.getString("birthday");
        names[i] = data.getString("name");
    }
}

查看http://www.androidhive.info/2012/01/android-json-parsing-tutorial/

【讨论】:

  • 这种对象怎么办? [{"id":"1019","level":"1","time_in_secs":"3","par":"0","initials":"EGB","quote":"Losers! i am way awesomer","time_stamp":"2014-01-26 11:20:20"},{"id":"1018","level":"1","time_in_secs":"3","par":"0","initials":"EGB","quote":"you just got beat by a girl!","time_stamp":"2014-01-26 11:19:24"},{"id":"1032","level":"1","time_in_secs":"3","par":"0","initials":"0","quote":"Losers!","time_stamp":"2014-07-10 09:11:55"}]
  • 字符串 jsonString = yourstring; JSONObject jsonResult = new JSONObject(jsonString); JSONArray 数据 = jsonResult.getJSONArray(""); if(data != null) { String[] names = new String[data.length()]; String[] 生日 = new String[data.length()]; for(int i = 0 ; i
【解决方案2】:

像这样编辑您的代码...这可能对您有所帮助..

JSONObject resultObject = new JSONObject(response);

JSONArray JArray = resultObject.getJSONArray("data");

                for (int t=0; t<JArray.length(); t++) {

                    JSONObject JObject = JtArray.getJSONObject(t);



builder.append(JObject.getString("uid")+": ");

【讨论】:

    【解决方案3】:

    在java中,它被解决为

    String jsonString = yourstring;
    JSONObject data = JSON.parse(jsonString);
    
    //reading data using index
    long firstData_uid = data["data"][0]["uid"];
    String firstData_birthday = data["data"][0]["birthday"];
    String firstData_name = data["data"][0]["name"];
    

    在javascript中,它被解决为

    var jsonString = yourstring;
    var data = JSON.parse(jsonString);
    
    //reading data using index
    var firstData_uid = data["data"][0]["uid"];
    var firstData_birthday = data["data"][0]["birthday"];
    var firstData_name = data["data"][0]["name"];
    

    【讨论】:

      猜你喜欢
      • 2011-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-05
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 2018-05-16
      相关资源
      最近更新 更多