在GSON中,您可以反序列化为JsonObject,进而允许您访问JsonElements并调用诸如getAsString(),getAsInt()等方法.
这对于我的用例非常有用:我正在使用JSON序列化数据并通过网络发送数据.数据与协议标识符一起发送,该协议标识符告诉客户端如何处理数据.我不想为每种不同的协议都创建一个类,因此将其反序列化为JsonObject可以提供很多灵活性.
我找不到在C#中执行此操作的类似方法.我认为我需要滚动自己的JsonElement / Object / Array / Primitive层次结构,但是我真的不知道从哪里开始.那是最好的方法吗?
我想要:
将C#中的json反序列化为一种结构,该结构使我可以按特定类型访问数据,而无需为数据使用类“骨架”.
编辑:
我仅限于.NET 3.5
解决方法:
JSON.NET可以做到这一点-您不需要反序列化为一个类:
int value = JObject.Parse(myJsonString)["property"]["subProperty"].Value<int>();
有关更多信息,请参见LINQ to JSON的文档.