Arrays 使用DataContractJsonSerializer WP7将数组解析为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]

如何使用DataContractJsonSerializer解析Json字符串中的数组元素? 语法是:

{
   "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]。很抱歉,我忘记了删除这个问题。(我应该,还是应该保留它以备将来参考?)