【发布时间】:2015-02-02 13:45:56
【问题描述】:
这是我的 JSON:
{
"Name": "Eli",
"Age": 4,
"Children": {
"Moshe": {
"Age": 6,
"Characteristics": "Nice;Good;"
},
"Yossi": {
"Age": 3,
"Characteristics": "Hero;Brave"
}
}
}
这是我的 JSON 反序列化函数:
public static object FromJSON<T>(string json)
{
using (MemoryStream stream = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
return serializer.ReadObject(stream);
}
}
我正在尝试将其序列化为Person 对象:
[DataContract]
public class Person
{
[DataMember]
public int Age;
[DataMember]
public string Name;
[DataMember]
public string Children;
}
如您所见,我不想将Children 输入字典,而是按原样获取 - JSON 字符串。
目前我正在这样做:
Person p = (Person)Extensions.FromJSON<Person>(output);
我得到了异常说:
反序列化 JSONSerialization.Person 类型的对象时出错。应来自命名空间“项目”的结束元素“项目”。从命名空间“item”中找到元素“a:item”。
只是澄清一下:我不希望孩子子字段被解析。
【问题讨论】:
-
也许它不相关,但
Yossi不是缺少结束}吗? -
@bali182 谢谢,这是一个错字 - 已修复。
标签: c# json deserialization