我陷入了一个问题。我收到了 Json 响应,例如
{
"Result":[
"Entertainment",
"Business",
"Sports",
"Technology"]
}
我能够获得第一个值,即在执行后循环响应中这样的结果值是
["Entertainment","Business","Sports","Technology"]
现在的问题是我得到的响应是字符串而不是数组。那么我怎样才能分别获取这些值。
我陷入了一个问题。我收到了 Json 响应,例如
{
"Result":[
"Entertainment",
"Business",
"Sports",
"Technology"]
}
我能够获得第一个值,即在执行后循环响应中这样的结果值是
["Entertainment","Business","Sports","Technology"]
现在的问题是我得到的响应是字符串而不是数组。那么我怎样才能分别获取这些值。
问题是我得到的响应是字符串而不是数组
=>正如你所说,你有一个字符串的响应,那么你只需要用你得到的响应字符串创建 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();
}
你可以像这样解析你的json
try {
JSONObject obj=new JSONObject("");
JSONArray arr=obj.getJSONArray("Result");
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
试试看
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 ");
}
要解析你的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
像这样(并且jsonString
是来自服务器的源 json 响应):
JSONObject json = new JSONObject( jsonString );
JSONArray resultArray = json.getJSONArray("Result");
然后简单地迭代resultArray
和get()
您可以从您的字符串中获取数组的每个String
值,如下所示:-Results
JSON
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.
}
我已经解决了这个问题
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);
}