[英]How to parse Json object containing an array in Android?
我對此很陌生,所以我不知道該怎么做,而且我仍在學習如何解析JSON文件的過程。 我試圖使用Volley解析此 JSON對象,但是我缺少下一步的邏輯。 謝謝! 這是我的代碼:
public class MainActivity extends AppCompatActivity {
private TextView results;
String JsonUrl = "http://api.androidhive.info/contacts/";
String data = "";
RequestQueue requestQueue;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
requestQueue = Volley.newRequestQueue(this);
results = (TextView) findViewById(R.id.jsonData);
JsonObjectRequest objRequest = new JsonObjectRequest(Request.Method.GET,
JsonUrl, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
JSONObject contactObj = response.getJSONObject("contacts");
for (int i = 0; i < contactObj.length(); i++) {
String id = contactObj.getString("id");
String name = contactObj.getString("name");
data += "";
data += "Id " + id + "\n\n";
data += "Name " + name + "\n\n";
}
results.setText(data);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("Volley", "Error");
}
});
requestQueue.add(objRequest);
}
}
如果此時JSON的解析正確獲取了ID和名稱,那么剩下要做的唯一一件事就是使用該數據。 您知道它是否正在獲取該信息嗎? 如果要獲取數據,那么接下來要做的就是在Activity中創建一個函數,然后調用該函數
public void processJSONResults(String id, String name) {
...Handle processing of data, update GUI etc...
}
然后,從onResponse中,只需將data調用processJSONResults即可。 如果JSON處理不起作用,請告訴我,並告訴我錯誤/結果。
嘗試這樣..
JSONObject contactObj = new JSONObject(response);
JSONArray contactArray = contactObjj.getJSONArray("contacts")
for (int i = 0; i < contactArray.length(); i++) {
JSONObject jsonObj = contactArray.getJSONObject(i);
String id = jsonObj.getString("id");
String name = jsonObj.getString("name");
//Define your logic here to pass the data on results
results.setText(data);
它一定會幫助您!
這是JSON對象:
{“ number1”:“ value1”,“ number2”:“ value2”,“ number3”:“ value3”}
使用keys()迭代器迭代所有屬性,並對每個屬性調用get() 。
示例代碼:
Iterator<String> iter = json.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
Object value = json.get(key);
} catch (JSONException e) {
// Something went wrong!
}
}
希望對您有幫助。.謝謝
聯系人是一個數組。 使用以下內容。
JSONArray contactObjArray = response.getJSONArray("contacts");
現在,您可以迭代數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.