私はFacebookと統合されているAndroidアプリに取り組んでいます。Facebookから情報を取得するためにfqlクエリを使用しています。私の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"}
問題は、その情報をさまざまな配列に格納する方法ですか?
この目的のためにいくつかのコードを修正してください。
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/
このようにコードを編集してください...これはあなたを助けるかもしれません。
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")+": ");
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"];