我试图从服务器得到一个答案并将其转换为 JSONObject
。
现在我有这段代码
private JSONObject sendData(ArrayList<NameValuePair> data, String actionname)
{
// 1) Connect via HTTP. 2) Encode data. 3) Send data.
try
{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new
HttpPost(actionname);
httppost.setEntity(new UrlEncodedFormEntity(data));
HttpResponse response = httpclient.execute(httppost);
// Log.i("postData", response.getStatusLine().toString());
InputStream is = response.getEntity().getContent();
String result = convertStreamToString(is);
// JSONArray jArr = new JSONArray (result);
// int eventID = jArr.getJSONObject(0).getInt("eventID");
JSONObject jObject = new JSONObject(result);
return jObject;
}
catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
}
return null;
}
在 result
字符串变量中我有这个
{"status":{"code":404,"text":"Not Found"},"content":"User authentication failure"}
但是在代码字符串 JSONObject jObject = new JSONObject(result);
- 它返回 null
; =(( 我尝试创建 JSONArray
但它返回一个扩展,我可以从 JSONObject
创建 JSONARRAY
。
最佳答案
从 result
您可以创建 JSONArray
,如下所示:
JSONArray finalResult = new JSONArray(new JSONTokener(result));
一旦你有了 JSONArray
,你就可以遍历以获取详细信息,如下所示:
for (int i = 0; i < finalResult.length(); i++) {
JSONObject message = finalResult.getJSONObject(i);
String content= message.getString("content");
...
...
}
关于java - 从 String Android 创建 Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10996002/