在没有类型的先验知识的情况下在C#中解码JSON对象

时间:2011-08-24 13:22:00

标签: c# json

我有一些工作代码:

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编码的对象,而不必发送有关该对象的类型的额外信息。

2 个答案:

答案 0 :(得分:1)

使用.NET 4.0,您可以使用动态对象。为什么不从另一个问题尝试这个解决方案:Deserialize JSON into C# dynamic object?

答案 1 :(得分:0)

其他信息:

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

当这个库对JSON进行编码时,它会为完全自动的重新分析提供足够的信息。

这不适合我的目的,因为它包含一堆C#特定的信息,我们在这里使用跨语言。

相关问题