gpt4 book ai didi

java - 为什么 Gson 会解析无效的 Json 字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:14:35 26 4
gpt4 key购买 nike

根据 JSON 规范,字符串中的\必须进行转义(即\\),否则它的 invalid JSON .Gson 假定“\apple”等于“apple”而不引发异常。为什么呢?

public class MainApp {

public static void main(String[] args) {
String str = "{\"bar\":\"\\apple\"}";
/*
str without escaping =
{
"bar" : "\apple"
}
*/

Foo foo = new Gson().fromJson(str, Foo.class);
System.out.println("In Json = " + "\\" + "apple");
System.out.println("In Pojo = " + foo.getBar());
}

class Foo {
private String bar;
//Setter and getters stripped
}
}

输出:

 In Json = \apple
In Pojo = apple

它只发生在第一个字符和 'a' 上。它有什么特别之处?

最佳答案

Gson 默认情况下只是转义,如果此行为对您的方法不正确,只需执行以下操作:

Gson gson = new GsonBuilder().disableHtmlEscaping().create();
Foo foo = gson.fromJson(str, Foo.class);

关于java - 为什么 Gson 会解析无效的 Json 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38006832/

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