【发布时间】:2019-09-05 07:58:05
【问题描述】:
我有一个带有来自 API 的数据的 JSON
{"S":"Success","Result":{"Data":[[2251,2570205,"05-Sep-19 09:53 AM","--","Rs. 0","Cash","Amount Paid : 0"],[2248,3817456,"01-Sep-19 08:53 AM","--","Rs. 168.00","NC","Reason : NC"],[2247,2997168,"01-Sep-19 08:49 AM","16","Rs. 660.00","Card","Amount Paid : 660, Type : Visa"],[2245,6410400,"01-Sep-19 08:46 AM","16","Rs. 726.00","Card","Amount Paid : 726, Type : Visa"]],"Headers":["S.No.","Order Id","Date","Table No","Amount","Mode of Payment","More Info"],"Footer":["Total","4","","","Rs. 1,386.00","",""]}}
我需要将其转换为 C# 对象才能绑定到 UI。下面是C#代码
反序列化对象的代码:
var jsonResult = JsonConvert.DeserializeObject<GenericJSONResponse<ReportRootObject>>(response);
我在 response 对象中得到响应。
对象:
public class ReportRootObject
{
public string S { get; set; }
public ReportMasterDetailsData ReportMasterDetailsData { get; set; }
}
public class ReportMasterDetailsData
{
public List<List<ReportMasterDetails>> Data { get; set; }
public List<string> Headers { get; set; }
public List<string> Footer { get; set; }
}
public class ReportMasterDetails
{
public int SerialNumber { get; set; }
public int OrderId { get; set; }
public string Date { get; set; }
public string TableNumber { get; set; }
public string Amount { get; set; }
public string ModeOfPayment { get; set; }
public string Reason { get; set; }
}
当尝试使用 jsonResult.Result.ReportMasterDetailsData.Data; 访问字段时
我在“ReportMasterDetailsData”处收到空引用异常
我错过了什么??
【问题讨论】:
-
试试这个
JsonConvert.DeserializeObject<ReportRootObject> -
@Nkosi 请详细说明?使用```json2csharp.com```我得到
public class Result { public List<List<object>> Data { get; set; } public List<string> Headers { get; set; } public List<string> Footer { get; set; } } public class RootObject { public string S { get; set; } public Result Result { get; set; } } -
@mtkachenko 这不是问题。
GenericJSONResponse只是一个通用对象 -
不应该是这样的:jsonResult.ReportRootObject.ReportMasterDetailsData.Data;或一些演员......
-
@Nkosi 不确定你的意思..
标签: c# .net json json-deserialization