如何反序列化JSON数据树?
|
假设我的JSON数据格式为:(某种树数据:)
{
\“ nodeData \”:
[
\“ nodeObject \”:
{
\“ nodeName \”:\“节点1 \”,
\"nodeChildren\":
[
\"nodeObject\":
{
\"nodeName\": \"Node 1-1\"
},
\"nodeObject\":
{
\"nodeName\": \"Node 1-2\"
},
\"nodeObject\":
{
\"nodeName\": \"Node 1-3\",
\"nodeChildren\":
[
\"nodeObject\":
{
\"nodeName\": \"Node 1-3-1\"
}
]
},
\"nodeObject\":
{
\"nodeName\": \"Node 1-4\"
},
\"nodeObject\":
{
\"nodeName\": \"Node 1-5\",
}
]
},
\"nodeObject\":
{
\"nodeName\": \"Node 2\",
},
\"nodeObject\":
{
\"nodeName\": \"Node 3\",
}
]
}
为了反序列化此数据,在SL应用程序中,我定义了一个内部类来匹配JSON数据模型,例如:
[DataContract]
internal class nodeObject
{
[DataMember]
public string nodeName;
[DataMember]
public nodeObject nodeChildren;
}
然后使用DataContractJsonSerializer来获取数据,但是我得到了一些错误信息:
JSON中遇到意外字符。预期\',\',得到\':\'。 (37):
由于数据是一棵树,列表可能不适用于此类数据吗?
如何解决这个问题?
谢谢你们。如果json数据格式正确,那么我将使用以下类型的代码反序列化上述数据的对象:
var jsonSerializer = new DataContractJsonSerializer(typeof(List<nodeObject>));
var nodes = jsonSerializer.ReadObject(e.Result) as List<nodeObject>;
this.listBox1.ItemsSource = nodes;
但是对于节点,我仍然为空。
不知道如何用这种树数据来反序列化对象。
没有找到相关结果
已邀请:
3 个回复
俺呵誓放胳
您的代码需要这样格式化:
乏摩纶誊伟
使用JSON Lint验证您的数据。
完趣镐