Как я могу разобрать объект JSON ниже, используя DataContractJsonSerializer
в C#?Как разбирать массив объектов json, содержащий смешанные примитивные типы, используя DataContractJsonSerializer?
мне нужно будет определить класс для хранения ниже данных в формате JSON, который включает в себя массив массивов примитивов смешанных типов (строка и целое число):
Body:
{
"status": "failure",
"staticdata": [
[
"2013-06-01",
123
],
[
"2013-06-02",
234
],
[
"2013-06-03",
345
],
...
]
}
Я попробовал ответ ниже и попытался прочитала DataContractJsonSerializer
,
DataContractJsonSerializer jsonSerializer = new DataContractJsonSerializer(typeof(RootObject));
object objResponse = jsonSerializer.ReadObject(response);
RootObject jsonResponse = objResponse as RootOject;
foreach (object[] sd in jsonResponse.staticdata)
{
foreach (object o in sd)
{
//Value val = v as Value;
Value val = (Value)Convert.ChangeType(o, typeof(Value));
log.Info("date: " + val.date);
log.Info("crashCount: " + val.longValue);
}
}
но в converttype от объекта к стоимости происходит сбой, я-то здесь отсутствует.
Значение ниже класса:
[DataContract]
public class Value
{
[DataMember(Name = "date")]
public string date { get; set; }
[DataMember(Name = "longValue")]
public long longValue{ get; set; }
}
модифицированный код чтения значений (IgnoreDataMember значений), а затем может в состоянии прочитать, как показано ниже: это правильный подход?
object objResponse = jsonSerializer.ReadObject(response);
RootObject jsonResponse = objResponse as RootOject;
foreach (Value in jsonResponse.Values)
{
log.Info("date: " + val.date);
log.Info("longValue: " + val.longValue);
}
См http://stackoverflow.com/questions/9034220/parse-an-array-as-a-json-string- using-datacontractjsonserializer-wp7 – Stuart
http://stackoverflow.com/questions/27174549/how-to-use-datacontractjsonserializer-to-parse-a-nested-json-object http://stackoverflow.com/questions/9034220/ parse-a-array-as-a-json-string-using-datacontractjsonserializer-wp7 и т. д. ... 3 секунды онлайн-поиска –
Почему вы не используете Json.Net? Это намного проще – NicoRiff