我有一个使用以下设置使用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。Columns [0]处为BEGIN_OBJECT。 .ForeignKeyTable.Indexes
我将放一小部分json数据,注意$ id,$ ref: JSON with references format
答案 0 :(得分:1)
最后,我找到了一个经过修改以符合JsonNet C#序列化器格式的Java库:
https://github.com/jdereg/json-io
将@ id,@ ref和@items更改为$ id,$ ref和$ values,并将来自JsonNet C#的$ id和$ ref中的字符串值解析为Java Long(即使是C#序列化格式,它也是一个数字,但是是字符串类型)
也许这也可以帮助其他人。