类似于 GSON 的 Json.NET 的松散输入选项

Con*_*ark 6 c# serialization json gson

在 GSON 中,您可以反序列化为 JsonObject,这反过来又允许您访问 JsonElements 并调用 getAsString()、getAsInt() 等方法...

这对我的用例非常有用:我正在使用 JSON 序列化数据并通过网络发送它。数据与协议标识符一起发送,协议标识符告诉客户端如何处理数据。我不想为每种不同类型的协议创建一个类,因此反序列化为 JsonObject 允许我有很大的灵活性。

我在 C# 中找不到类似的方法来做到这一点。我想我需要滚动我自己的 JsonElement/Object/Array/Primitive 层次结构,但我真的不知道从哪里开始。这甚至是最好的方法吗?

我想要:

将 C# 中的 json 反序列化为一个结构,该结构允许我以特定类型访问数据,而无需为数据使用类“骨架”。

编辑:

我仅限于 .NET 3.5

And*_*ker 5

JSON.NET可以做到这一点——您不需要反序列化为一个类:

int value = JObject.Parse(myJsonString)["property"]["subProperty"].Value<int>();
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅LINQ to JSON的文档。