Я сейчас попробовал разные подходы, но все они, похоже, приводят к одной и той же проблеме парсинга.
Если я получаю обратный вызов с объектом Json и пытаюсь его проанализировать, например:
var jsonSerializer = new DataContractJsonSerializer(typeof(List<Jsons>));
var oAllJsons = (List<Jsons>)jsonSerializer.ReadObject(oStream);
Тогда я получу ответы, где один из них будет анализировать, а другой нет.
Этот фрагмент Json не будет анализироваться:
{
"summary": {
"durationInSeconds": 2889,
"startTimeInSeconds": 1536486220
}
}
Этот фрагмент Json разобрать:
{
"summary": [{
"durationInSeconds": 2889,
"startTimeInSeconds": 1536486220
}]
}
что мне не хватает?
Почему я должен вручную добавить [], если они отсутствуют, по какой-либо причине в обратных вызовах.
Оба Jsons действительны, так почему же DataContractJsonSerializer не распознает его?
Есть ли какие-то настройки, которые я полностью пропустил в своем трехдневном поиске ..
Мой список объектов выглядит так:
[DataMember(Name = "userAccessToken")]
public string UserAccessToken { get; set; }
[DataMember(Name = "summaryId")]
public string SummaryId { get; set; }
[DataMember(Name = "summary")]
public List<ADetail_Summary> Summary = new List<ADetail_Summary>();
[DataMember(Name = "samples")]
public List<ADetail_Sample> Sample = new List<ADetail_Sample>();
И резюме выглядит так, хотя бы частично:
[DataMember(Name = "durationInSeconds")]
public int DurationInSeconds { get; set; }
[DataMember(Name = "startTimeInSeconds")]
public int StartTimeInSeconds { get; set; }
[DataMember(Name = "startTimeOffsetInSeconds")]
public int StartTimeOffsetInSeconds { get; set; }
[DataMember(Name = "activityType")]
public string ActivityType { get; set; }