I am lost
まず、androidhiveの例で、jsonstringのroot
要素が で、質問として投稿されたjsonstringの要素が であることをお伝えしたいと思いjsonobject
ます。第二に、配列を消費してそこからデータを抽出するために、常に配列の先頭に名前を付ける必要はありません。root
jsonarray
How can I parse this data?
ルート要素が異なるため、データの消費方法を変更する必要があり、
androidhiveの例では、
// Creating JSON Parser instance
JSONParser jParser = new JSONParser();
// getting JSON string from URL
JSONObject json = jParser.getJSONFromUrl(url); //look at the left side of assignment operator.here result is being consumed in JSONObject
try {
// Getting Array of Contacts
contacts = json.getJSONArray(TAG_CONTACTS);
// looping through All Contacts
for(int i = 0; i < contacts.length(); i++){
JSONObject c = contacts.getJSONObject(i);
// Storing each json item in variable
String id = c.getString(TAG_ID);
String name = c.getString(TAG_NAME);
String email = c.getString(TAG_EMAIL);
String address = c.getString(TAG_ADDRESS);
String gender = c.getString(TAG_GENDER);
// Phone number is agin JSON Object
JSONObject phone = c.getJSONObject(TAG_PHONE);
String mobile = phone.getString(TAG_PHONE_MOBILE);
String home = phone.getString(TAG_PHONE_HOME);
String office = phone.getString(TAG_PHONE_OFFICE);
}
} catch (JSONException e) {
e.printStackTrace();
}
質問として投稿したjsonstringはJSONArrayで消費でき、
// Creating JSON Parser instance
JSONParser jParser = new JSONParser();
// getting JSON string from URL
JSONArray json = jParser.getJSONFromUrl(url); //look at the left side of assignment operator.here result is being consumed in JSONArray
try {
// looping through All data
for(int i = 0; i < json.length(); i++){
JSONObject c = json.getJSONObject(i);
// Storing each item in variable
String id = c.getString("id");
String title= c.getString("title");
String permalink= c.getString("permalink");
String content= c.getString("content");
}
} catch (JSONException e) {
e.printStackTrace();
}