繁体   English   中英

无法解析Java JSON字符串

[英]Can't parse Java JSON string

从我的服务器获取这样的JSON响应:

String json = getJsonFromServer();

服务器返回此答复(在开头和结尾加上双引号):

"{\"error\":\"Not all required fields have been filled out\"}";

然后,我想获取错误字段。 我尝试使用JSONObject类获取字符串,但是它不起作用。

System.out.println("The error is: " + new JSONObject().getJSONObject(response).getString("error");

您似乎使用了错误的JSONObject构造函数; 在您的示例中,您尝试从新创建的对象中获取一个对象-它永远不会存在。

尝试这个:

String response = "{\"error\":\"Not all required fields have been filled out\"}";

JSONObject json = new JSONObject( response );

String error = json.getString( "error" );

System.out.println( error );

产量

并非所有必填字段都已填写

编辑

现在您已经完全改变了问题...

为什么不先剥离第一个和最后一个字符?

因此,如果

String response = "\"{\"error\":\"Not all required fields have been filled out\"}\"";

response = response.substring(1, response.length() - 1));

// Now convert to JSONObject

您的响应对象具有此字符串吗?

{“错误”:“未填写所有必填字段”}

下面的代码显示了预期的输出:

    Object responseObject = "{\"error\":\"Not all required fields have been filled out\"}";
    JSONObject jsonObject = new JSONObject(responseObject.toString());
    String errorContent = jsonObject.getString("error");
    System.out.println(errorContent);

我尝试了

String response = "{\"error\":\"Not all required fields have been filled out\"}";
    JSONParser parser = new JSONParser();
    try {
        JSONObject json = (JSONObject) parser.parse(response);

        System.out.println(json.get("error").toString());
    } catch (ParseException ex) {

    }

它可以正常工作,您可以尝试一下,别忘了添加json lib json-simple

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM