【问题标题】:create Json Object from String Android从字符串 Android 创建 Json 对象
【发布时间】:2012-06-12 11:46:37
【问题描述】:

我试图从服务器获取答案并将其转换为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":"未找到"},"content":"用户 身份验证失败”}

但是在代码字符串JSONObject jObject = new JSONObject(result); - 它转到返回null; =((我试图创建JSONArray,但它返回给我一个扩展,我可以从JSONObject创建JSONARRAY

【问题讨论】:

  • 你必须在 JSONObject jObject = new JSONObject(result); jsut在日志中打印结果并检查............

标签: java android json web-services


【解决方案1】:

您可以从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");
    ...
    ...
}

【讨论】:

  • org.json.JSONException: org.json 类型的值 {"content":" ","status":{"text":"Not Found","code":404}}。 JSONObject 无法转换为 JSONArray - 采用了这个
【解决方案2】:

我解决了这个问题,但我不明白为什么会这样。可能是我在 OOP 方面不太好。所以我创建 JSONObject jObject 作为 JSONHandler 类的属性,它具有 sendData 方法。它变成了工作。如果有人解释我为什么会这样,我会很高兴。

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多