java - 从 String Android 创建 Json 对象

标签 java android json web-services

我试图从服务器得到一个答案并将其转换为 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/

相关文章:

java - 在 Spring 服务器中发送长异步请求保持 Activity 状态

python - 如何将 JSON 文件作为列表中的单独字符串而不是作为一个大列表读取

java - 为 Android 应用程序加密文件夹?

android - 使用 MVVM kotlin 进行 Firebase 身份验证

jquery - 使用 SAPUI5 读取 REST 服务

c# - 通过 JSON 将数组发送到 MVC Controller ?

java - 如何使用 Apache POI 创建一个简单的 docx 文件?

Java 文件列表 : NPE while using for loop

java - 很难在我的代码中找到错误

android - flatMap 中的 NetworkOnMainThreadException