gpt4 book ai didi

java - 在 Java 中清理 JSON 字符串值

转载 作者:行者123 更新时间:2023-12-02 04:58:56 25 4
gpt4 key购买 nike

我需要接受来自用户的字符串并将其按原样放入 JSONObject 中。documentation说字符串可以用 ' 引用,但显然我误解了。

这足够了还是我遗漏了一些东西?

jsonObject.put("name", "'" + userInput + "'");

我单步执行了 put 函数,但它似乎根本不关心字符串!有一个 quote 函数,但它在字符串周围添加了另一组双引号,这似乎不正确。

最佳答案

您似乎引用了 Javadoc 的这一部分

Strings may be quoted with ' (single quote).

前面是

The texts produced by the toString methods strictly conform to the JSON syntax rules. The constructors are more forgiving in the texts they will accept:

JSON strings are wrapped in double quotes " 。因此 JSONObject#toString 将生成一个 JSON 值,其中 JSON 字符串在语法上是正确的。但是,JSONObject 构造函数可以接受 JSON 值(作为文本),其中 JSON 字符串用单引号而不是双引号括起来。

例如

JSONObject object = new JSONObject("{'bad':'json'}"); // not valid JSON
System.out.println(object);

产生有效的

{"bad":"json"}

put 方法在这里完全不相关。您不需要(也不应该)在指定的字符串周围使用单引号。

<小时/>

来自您的评论

JSONObject obj = new JSONObject();
obj.put("jsonStringValue","{\"hello\":\"world\"}");
obj.put("naturalStringValue", "\"hello world\"");
System.out.println(obj.toString());
System.out.println(obj.getString("jsonStringValue"));
System.out.println(obj.getString("naturalStringValue"));

打印

{"jsonStringValue":"{\"hello\":\"world\"}","naturalStringValue":"\"hello world\""}
{"hello":"world"}
"hello world"

关于java - 在 Java 中清理 JSON 字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28483089/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com