从我的服务器获得这样的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");
答案 0 :(得分:0)
您似乎使用了错误的JSONObject
构造函数;在你的例子中,你试图从newlay创建的对象中获取一个对象 - 它永远不会存在。
试试这个:
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
答案 1 :(得分:0)
你的回复对象有这个字符串吗?
{"错误":"并非所有必填字段都已填写"}
下面的代码打印了预期的输出:
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);
答案 2 :(得分:0)
我试过
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