繁体   English   中英

在 Java 中将字符串转换为 json 的问题

[英]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)); }

我建议按照链接彻底了解 Java 和 JSON - 示例

暂无
暂无

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

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