【发布时间】:2019-01-30 20:28:22
【问题描述】:
我有一个使用 Json.Net C# 库通过以下设置生成的 JSON 字符串:
JsonConvert.DefaultSettings = () => new JsonSerializerSettings
{
Formatting = Newtonsoft.Json.Formatting.Indented,
ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore,
PreserveReferencesHandling = PreserveReferencesHandling.All
};
注意 PreserveReferencesHandling 在 json 中生成引用,而不是在每个对象引用上复制(复制)相同的对象。
如何在 java 中反序列化结果? Google Gson 库无法解析。
更新: 我认为该错误无济于事: com.google.gson.JsonSyntaxException:java.lang.IllegalStateException:应为 BEGIN_ARRAY,但在第 1 行第 154944 列路径 $.Tables[0].Columns[4].ForeignKeyTable.ForeignKeyChildren1.Columns[0].ForeignKeyTable 为 BEGIN_OBJECT .索引
我会放一小段 json 数据,注意 $id, $ref: JSON with references format
【问题讨论】:
-
尽管我很想帮助和我同名的人,但我不能......你需要分享“解析失败”的含义。它给你一个错误吗?如果有,它说了什么?如果您可以共享 JSON 字符串,那也会很有帮助。
-
gson and references的可能重复
-
@DanNeely 我想反序列化而不是序列化,我看看也许它还有帮助。
-
您真的需要
PreserveReferencesHandling.All还是PreserveReferencesHandling.Objects就足够了? -
@dbc 它不会影响我的输出 所有都是必需的
标签: java c# json.net deserialization