gpt4 book ai didi

java - 当 JSON 包含 Json.Net C# 生成的 $ref 和 $id 时,如何在 Java 中对其进行反序列化

转载 作者:行者123 更新时间:2023-11-30 22:56:29 25 4
gpt4 key购买 nike

我有一个使用具有此设置的 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.ForeignKeyChildren 1 处为 BEGIN_OBJECT .Columns[0].ForeignKeyTable.Indexes

我会放一小段json数据,记下$id, $ref: JSON with references format

最佳答案

最后我找到了一个我修改为符合 JsonNet C# 序列化程序格式的 java 库:

https://github.com/jdereg/json-io

将@id、@ref 和@items 更改为 $id、$ref 和 $values,并将 JsonNet C# 中的 $id 和 $ref 中的字符串值解析为 java Long(即使在 C# 序列化格式中也是一个数字,但它是字符串类型)

也许这也可以帮助其他人..

https://github.com/LucaGabi/json-io.git

关于java - 当 JSON 包含 Json.Net C# 生成的 $ref 和 $id 时,如何在 Java 中对其进行反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54449023/

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