从 JSONArray 获取值
Get value from JSONArray
JSONObject
obj
看起来像这样:
{"data":"Text 1","data2":"Text 2","turnCounter":0,"data3":["0","1","2"]}
我已经能够检索到 data
、data2
和 turnCounter
,但我不知道如何获取 data3
:
这是我的尝试
JSONObject obj = new JSONObject(st);
if (obj.has("data")) {
retVal.data = obj.getString("data"); //returns Text 1
}
if (obj.has("data2")) {
retVal.data2 = obj.getString("data2"); //returns Text 2
}
if (obj.has("turnCounter")) {
retVal.turnCounter = obj.getInt("turnCounter"); // returns 0
}
List<String> allNames = new ArrayList<String>();
JSONArray cast = obj.getJSONArray("data3");
for (int i=0; i<cast.length(); i++) { //does not return 0, 1, or 2
JSONObject data3 = cast.getJSONObject(i); //"" "" ""
retVal.data3.set(i, data3.toString()); //"" "" ""
}
谁能告诉我如何从 JsonArray data3
中获取值?
如果我需要提供更多信息,请告诉我。
改变
JSONObject data3 = cast.getJSONObject(i); //
到
String data3 = cast.getString(i);
方法是:
JSONArray cast = obj.getJSONArray("data3");
String[] string_array = new String[]();
for (int i=0; i<cast.length(); i++) {
string_array[i] = cast.getString(i);
retVal.data3.set(i, string_array[i]);
}
试试这个。这会起作用。
该数组包含字符串,因此您应该调用 getString(i)
而不是 getObject(i)
:
JSONArray cast = obj.getJSONArray("data3");
for (int i=0; i<cast.length(); i++) {
String data3 = cast.getString(i);
Log.e("TAG", data3);
}
JSONObject
obj
看起来像这样:
{"data":"Text 1","data2":"Text 2","turnCounter":0,"data3":["0","1","2"]}
我已经能够检索到 data
、data2
和 turnCounter
,但我不知道如何获取 data3
:
这是我的尝试
JSONObject obj = new JSONObject(st);
if (obj.has("data")) {
retVal.data = obj.getString("data"); //returns Text 1
}
if (obj.has("data2")) {
retVal.data2 = obj.getString("data2"); //returns Text 2
}
if (obj.has("turnCounter")) {
retVal.turnCounter = obj.getInt("turnCounter"); // returns 0
}
List<String> allNames = new ArrayList<String>();
JSONArray cast = obj.getJSONArray("data3");
for (int i=0; i<cast.length(); i++) { //does not return 0, 1, or 2
JSONObject data3 = cast.getJSONObject(i); //"" "" ""
retVal.data3.set(i, data3.toString()); //"" "" ""
}
谁能告诉我如何从 JsonArray data3
中获取值?
如果我需要提供更多信息,请告诉我。
改变
JSONObject data3 = cast.getJSONObject(i); //
到
String data3 = cast.getString(i);
方法是:
JSONArray cast = obj.getJSONArray("data3");
String[] string_array = new String[]();
for (int i=0; i<cast.length(); i++) {
string_array[i] = cast.getString(i);
retVal.data3.set(i, string_array[i]);
}
试试这个。这会起作用。
该数组包含字符串,因此您应该调用 getString(i)
而不是 getObject(i)
:
JSONArray cast = obj.getJSONArray("data3");
for (int i=0; i<cast.length(); i++) {
String data3 = cast.getString(i);
Log.e("TAG", data3);
}