解析没有键的简单JSON数组

时间:2014-04-30 16:23:19

标签: android json android-json

我需要帮助解析像这样的简单JSONArray:

{
 "text":[
  "Morate popuniti polje tekst."
 ]
} 

我试过这个但是我失败了:

 if (response_str != null) {
    try {
        JSONObject jsonObj = new JSONObject(response_str);
        JSONArray arrayJson = jsonObj.getJSONArray("text");

        for (int i = 0; i < arrayJson.length(); i++) {
            JSONObject obj = arrayJson.optJSONObject(i);
            error = obj.getString("text");
        }
    }

3 个答案:

答案 0 :(得分:8)

你的JSONArray是一个字符串数组。你可以这样迭代

JSONObject jsonObj = new JSONObject(response_str);
JSONArray arrayJson = jsonObj.getJSONArray("text");

for (int i = 0; i < arrayJson.length(); i++) {
    String error = arrayJson.getString(i);
    // Do something with each error here
}

答案 1 :(得分:5)

您有JSONArray文字。没有JSONObject的数组。

{  // Json object node 
"text":[ // json array text 
 "Morate popuniti polje tekst." // value
]
} 

只需使用

for (int i = 0; i < arrayJson.length(); i++) {
  String value =  arrayJson.get(i);
}

实际上不需要循环,因为在json数组中只有1个元素

你可以使用

String value = (String) arrayJson.get(0); // index 0 . need to cast it to string

或者

String value = arrayJson.getString(0); // index 0

http://developer.android.com/reference/org/json/JSONArray.html

public Object get (int index)

Added in API level 1
Returns the value at index.

Throws
JSONException   if this array has no value at index, or if that value is the null reference. This method returns normally if the value is JSONObject#NULL.
public boolean getBoolean (int index)

getString

public String getString (int index)

Added in API level 1
Returns the value at index if it exists, coercing it if necessary.

Throws
JSONException   if no such value exists.

答案 2 :(得分:2)

试试这个:

JSONObject jsonObject = new JSONObject(response_str);
JSONArray arrayJson = jsonObject.getJSONArray("text");
String theString = arrayJson.getString(0);