[英]Issue with converting string to json in Java
我是 Java 的新手,我正在使用 Eclipse 中的 Servlet 创建 web 应用程序。 我想使用以下代码将字符串转换为 JSON:
import org.json.JSONException;
import org.json.JSONObject;
JSONObject jsonObject = null;
jsonObject = new JSONObject(STRING);
System.out.println(jsonObject.getString("PROPERTY_NAME"));
如果STRING
等于"{'status':0}"
并且jsonObject.getString("status")
给我0
,它工作正常。
但是我得到了 API 的响应,例如"{"status":0}"
和jsonObject.getString("status")
给了我错误,因为jsonObject
是:
{}
错误是:
org.json.JSONException: JSONObject["status"] 未找到。
您对此有任何解决方案吗?
问题在于值不是键。 我已经测试过了,它有效
JSONObject jsonObject = null;
jsonObject = new JSONObject("{\"status\":0}");
System.out.println(jsonObject.getInt("status"));
或这个
JSONObject jsonObject = null;
jsonObject = new JSONObject("{\"status\":'0'}");
System.out.println(jsonObject.getString("status"));
您需要在STRING
变量中转义双引号:
"{\"status\":0}"
您可以像这样以编程方式执行此操作(我们需要调用toString()
,因为STRING
是 StringBuilder 的一个实例):
String escapedJsonStr = STRING.toString().replaceAll("\"", "\\\"");
我可以帮助你下面的例子......
for (String key: jsonObject.keySet()){ System.out.println(key); }
这将为您获取 JSON 中的密钥集。
JSONObject json_array = args.optJSONObject(0);
迭代器键 = json_array.keys();
while(keys.hasNext()) { String key = (String) keys.next(); System.out.println("密钥:" + key); System.out.println("值:" + json_array.get(key)); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.