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

时间:2014-10-30 19:07:02

标签: c# json serialization gson

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

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

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

我想:

将C#中的json反序列化为一个允许我以特定类型访问数据的结构,而不使用类"骨架"对于数据。

编辑:

我受限于.NET 3.5

1 个答案:

答案 0 :(得分:3)

JSON.NET可以执行此操作 - 您无需反序列化为类:

int value = JObject.Parse(myJsonString)["property"]["subProperty"].Value<int>();

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