проанализировать массив как строку Json, используя DataContractJsonSerializer WP7 - PullRequest
3 голосов
/ 27 января 2012

Как я могу проанализировать элементы массива в строке Json, используя DataContractJsonSerializer? Синтаксис:

{
   "array":[
 {
  "elementsProperies":"SomeLiteral"
 }
 ]
}

Ответы [ 2 ]

2 голосов
/ 27 января 2012

Вы не обязательно "анализируете" строку json, используя DataContractJsonSerializer, но вы можете десериализовать ее в объект или список объектов, используя это. Вот простой способ десериализации его в список объектов, если это то, что вам нужно.

Сначала вам нужно иметь тип объекта, который вы планируете десериализовать до:

[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;
}
0 голосов
/ 27 января 2012

Я предлагаю использовать Json.net .

В нем вы просто позвоните:

var jsonObj = JObject.Parse(yourjsonstring);

var elPropertyValue = (string)jsonObj.SelectToken("array[0].elementsProperies");

, чтобы получить "SomeLiteral".

...