gpt4 book ai didi

java - Google Gson 不允许属性名称中包含 '@'

转载 作者:行者123 更新时间:2023-12-01 12:11:33 26 4
gpt4 key购买 nike

我正在使用 com.google.gson 和注释 @SerializedName。使用 @SerialazedName("@foo") 时,由于 '@' ( See source code ),它会抛出 IllegalArgumentException。

将 JSONLint 与 { "@foo": 1 } 一起使用时,结果是有效的 JSON 对象。

为什么 Google Gson 在这种情况下会抛出异常? '@' 是 JSON 属性的无效字符吗?

最佳答案

那是 Gson 的一个非常旧的版本。我们已经在 2.3.1 。考虑更新。

以下工作正常

public class GsonTest {
public static void main(String[] args) throws Exception {
System.out.println(new Gson().toJson(new Allowed()));
}
}

class Allowed {
@SerializedName("@val")
private String val = "Hey";
}

和打印

{"@val":"Hey"}

无论出于何种原因,您使用的版本不支持它。

See here. 1.7 中已修复。

关于java - Google Gson 不允许属性名称中包含 '@',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27238908/

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