在c#中解码JSON对象,而不需要事先了解类型

本文关键字:不需要 了解 类型 解码 JSON 对象 | 更新日期: 2023-09-27 18:06:44

我有一些工作代码:

String objstr = "{'"m_children'":[{'"m_children'":null,'"m_name'":'"child0'"},{'"m_children'":null,'"m_name'":'"child1'"}],'"m_name'":'"Root'"}";
byte[] byteArr = Encoding.ASCII.GetBytes(objstr);
MemoryStream ms = new MemoryStream(byteArr);
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(Node));
Node obj = (Node)ser.ReadObject(ms);

让我烦恼的是,在解码字符串之前,我必须知道字符串中包含的对象的类型。我想通过TCP管道发送一个JSON编码的对象,而不必发送关于对象类型的额外信息。

在c#中解码JSON对象,而不需要事先了解类型

在。net 4.0中你可以使用动态对象。为什么不试试另一个问题的解决方案:将JSON反序列化为c#动态对象?

附加信息:

http://www.codeproject.com/KB/IP/fastJSON.aspx

当这个库编码JSON时,它提供了足够的信息来完全自动重新解析。

这并不符合我的目的,因为它包含了一堆c#特有的信息,而且我们在这里是跨语言的。