Я не первый раз десериализую Json в классы c #, но у меня возникают некоторые проблемы, когда эти Json имеют вложенные списки.Вот возвращенный Json списка workOrders:
[
{
"_id": "5cacdda0b4e6d128a61187ca",
"taskInstance": [
{
"_id": "5cacdda0b4e6d128a61187cc"
}
],
"isRunning": false
},
{
"_id": "5cacebb0b4e6d128a61187d1",
"taskInstance": [
{
"_id": "5cacebb0b4e6d128a61187d3"
}
],
"isRunning": false
}
]
и вот классы C #: WorkOrder
public class WorkOrder{
public string Id { get; set; }
public List<TaskInstance> TaskInstances { get; set; }
public string IsRunning { get; set; }
}
и TaskInstance
public class TaskInstance{
public string Id { get; set; }
}
А вот икод, который я использую для проверки результата:
JObject jsonResponse = JObject.Parse(data["data"].ToString());
string workOrderJson = jsonResponse["workOrderInstances"].ToString();
List<WorkOrder> wos = JsonConvert.DeserializeObject<List<WorkOrder>>(workOrderJson);
foreach (WorkOrder wo in wos){
Debug.Log("WO _id: " + wo.Id);
Debug.Log("wo.TaskInstances: "+ wo.TaskInstances);
Debug.Log("WO isRunning: " + wo.IsRunning);
}
И в то время как я вижу правильные значения для WO._id и WO.isRunning wo.TaskInstances, кажется, возвращает ноль или бросает бросокисключение нулевой ссылки всякий раз, когда я пытаюсь получить к нему доступ.
Я искал другие темы раньше, но ни одно из решений, похоже, не работает.Я не уверен, что мне не хватает.Спасибо за вашу помощь.
Отказ от ответственности: необработанные данные в JObject.Parse (data ["data"] выглядит следующим образом:
{
"data": {
"workOrderInstances": [
{
"_id": "5cacdda0b4e6d128a61187ca",
"taskInstance": [
{
"_id": "5cacdda0b4e6d128a61187cc"
}
],
"isRunning": false
},
...
]
}
}