Arrays 使用DataContractJsonSerializer WP7将数组解析为Json字符串
如何使用DataContractJsonSerializer解析Json字符串中的数组元素? 语法是:Arrays 使用DataContractJsonSerializer WP7将数组解析为Json字符串,arrays,parsing,windows-phone-7,datacontractjsonserializer,Arrays,Parsing,Windows Phone 7,Datacontractjsonserializer,如何使用DataContractJsonSerializer解析Json字符串中的数组元素? 语法是: { "array":[ { "elementsProperies":"SomeLiteral" } ] } 您不必使用DataContractJsonSerializer“解析”json字符串,但可以使用此命令将其反序列化为对象或对象列表。这里有一个简单的方法将其反序列化为对象列表,如果这是您想要的 首先,您需要有一个计划反序列化到的对象类型: [DataContract]
{
"array":[
{
"elementsProperies":"SomeLiteral"
}
]
}
您不必使用DataContractJsonSerializer“解析”json字符串,但可以使用此命令将其反序列化为对象或对象列表。这里有一个简单的方法将其反序列化为对象列表,如果这是您想要的
首先,您需要有一个计划反序列化到的对象类型:
[DataContract]
public class MyElement
{
[DataMember(Name="elementsProperties")] // this must match the json property name
public string ElementsProperties { get; set; }
}
然后,您可以使用如下方法将json字符串反序列化为对象列表
private List<MyElement> ReadToObject(string json)
{
var deserializedElements = new List<MyElement>();
using(var ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
{
var ser = new DataContractJsonSerializer(deserializedElements.GetType());
deserializedElements = ser.ReadObject(ms) as List<MyElement>;
}
return deserializedUsers;
}
私有列表ReadToObject(字符串json)
{
var deserializedElements=新列表();
使用(var ms=newmemoryStream(Encoding.UTF8.GetBytes(json)))
{
var ser=新的DataContractJsonSerializer(反序列化delements.GetType());
反序列化delements=ser.ReadObject(ms)作为列表;
}
返回反序列化数据;
}
我建议使用
在其中,您只需调用:
var jsonObj = JObject.Parse(yourjsonstring);
var elPropertyValue = (string)jsonObj.SelectToken("array[0].elementsProperies");
要获得
“SomeLiteral”
,您还可以查看其他json反序列化程序,如json.netthanks a bunch=D,不过我已经找到了“解决方案”。(idd,我使用了反序列化方法=3)我用我的延迟头给出了存储数据的列表,以及我想要存储[DataContract]前缀的元素。(我刚开始只使用元素,但后来才决定使用列表来存储数据,并且忘记了[DataContract]。很抱歉,我忘记了删除这个问题。(我应该,还是应该保留它以备将来参考?)