Decode JSON Object in C# without prior knowledge of type
本问题已经有最佳答案,请猛点这里访问。
我有一些工作代码:
1 2 3 4 5 6 | 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编码的对象,而不必发送有关该对象的类型的额外信息。
使用.NET 4.0,您可以使用动态对象。 为什么不从另一个问题尝试这个解决方案:将JSON反序列化为C#动态对象?
附加信息:
http://www.codeproject.com/KB/IP/fastJSON.aspx
当此库对JSON进行编码时,它会提供足够的信息以进行完全自动的重新分析。
这虽然不适合我的目的,因为它包含一堆C#特定的信息,我们在这里使用跨语言。