-9

我陷入了一个问题。我收到了 Json 响应,例如

{
"Result":[
   "Entertainment",
   "Business",
   "Sports",
   "Technology"]
}

我能够获得第一个值,即在执行后循环响应中这样的结果值是

["Entertainment","Business","Sports","Technology"]

现在的问题是我得到的响应是字符串而不是数组。那么我怎样才能分别获取这些值。

4

7 回答 7

2

问题是我得到的响应是字符串而不是数组

=>正如你所说,你有一个字符串的响应,那么你只需要用你得到的响应字符串创建 JSONObject ,然后使用下面的方法从中获取 JSONArray :

try{
    JSONObject objJSON = new JSONObject(objResponse);
    JSONArray arrayResponse = objJSON.getJSONArray("Result");

    // iterate through the JSONArray and fetch one by one string
 } catch (JSONException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
 }
于 2013-04-05T10:38:38.193 回答
0

你可以像这样解析你的json

try {
        JSONObject obj=new JSONObject("");
        JSONArray arr=obj.getJSONArray("Result");
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
于 2013-04-05T10:40:26.883 回答
0

试试看

JSONObject jsonObj = new JSONObject(json);
JSONArray resultArray = jsonObj.getJSONArray("Result");

for(int i=0;i<resultArray.length();i++){  

  JSONObject jsonObj =   resultArray.getJSONObject(i);
  String Entertainment= jObject.getString("Entertainment");
  String    Business= jObject.getString("Business");
  String    Sports = jObject.getString("Sports");
  String Technology = jObject.getString("Technology ");

}
于 2013-04-05T10:41:31.083 回答
0

要解析你的JSONArray并返回一个ArrayList字符串,试试这个:

JSONObject json = new JSONObject(jsonString);
    JSONArray jsonArray = jsonObj.getJSONArray("Result");
    if(jsonArray!= null) {
        ArrayList<String> arrayResult = new ArrayList<String>();
        for(int i=0;i<jsonArray.length();i++){
            arrayResult.add(arrayResult.getString(i));
        }
    }

注意:你应该把它放在一 try catch 起来捕捉 JSONException

于 2013-04-05T10:44:41.477 回答
0

像这样(并且jsonString是来自服务器的源 json 响应):

JSONObject json = new JSONObject( jsonString );
JSONArray resultArray = json.getJSONArray("Result");

然后简单地迭代resultArrayget()

于 2013-04-05T10:38:22.413 回答
0

您可以从您的字符串中获取数组的每个String值,如下所示:-ResultsJSON

JSONObject jsonObj = new JSONObject(jsonString);
JSONArray resultArray = jsonObj.getJSONArray("Result");
for(int i=0;i<resultArray.length();i++){
    System.out.println(resultArray.getString(i)); // Get each String.
}
于 2013-04-05T10:39:11.063 回答
0

我已经解决了这个问题

JSONParser jParser = new JSONParser();
   // getting JSON string from URL
   JSONObject json = jParser.getJSONObjectFromUrl(url);
   Log.e("json is", "--------------"+json);
   programResponse   =   json.getString("Result");
   Log.e("in the post-execute loop", "in the post-execute loop response is"+programResponse);
   JSONArray arrayResponse = new JSONArray(programResponse);
   for(int i = 0; i < arrayResponse.length(); i++){
   //JSONArray innerJsonArray = json.getJSONArray(i);
   String jsonObject = arrayResponse.getString(i);
   System.out.println(jsonObject);
   Log.e("length is", "--------------"+jsonObject);
   programValues.add(jsonObject);
}
于 2013-04-05T11:32:49.940 回答