[英]c# load Json into inherited class
我有一个C#类,我需要解析它的JSON。
该类具有来自另一个类的List<>
。
类结构是这样的。
public class OrderFund {
public int OrderID { get; set; }
public int BrokerID { get; set; }
public string SettlementMethod { get; set; }
public List<SettlementSap> SettlementsSap { get; set; }
}
public class SettlementSap {
public string SapMonetaryAccountNo { get; set; }
public string SapMonetaryAccountType { get; set; }
public string SapMonetaryAccountOffice { get; set; }
}
我的JSON是这样的。
{
"settlementMethod": "SAP",
"BrokerID": 1,
"OrderID": 1,
"Settlements": [
{
"SapMonetaryAccountNo": "400245892464",
"SapMonetaryAccountType": "CA",
"SapMonetaryAccountOffice": "AR"
}
]
}
我像这样加载我的JSON文件......
static OrderFund LoadJson(string file) {
string dire = Directory.GetCurrentDirectory();
using (StreamReader r = new StreamReader(dire + "\\" + file)) {
string json = r.ReadToEnd();
OrderFund items = JsonConvert.DeserializeObject<OrderFund>(json);
return items;
}
}
数据加载到OrderFun
类中,但OrderFund.SettlementsSap
为空。 我怎样才能加载Settlements
成SettlementsSap
?
那是因为您已将字段命名为SettlementsSap,但您的Json字段称为Settlements ...
您可以重命名班级中的字段;
public class OrderFund
{
public int OrderID { get; set; }
public int BrokerID { get; set; }
public string SettlementMethod { get; set; }
public List<SettlementSap> Settlements { get; set; }
}
或者像这样在字段中添加[JsonProperty(“Settlements”)]属性;
public class OrderFund
{
public int OrderID { get; set; }
public int BrokerID { get; set; }
public string SettlementMethod { get; set; }
[JsonProperty("Settlements")]
public List<SettlementSap> SettlementsSap { get; set; }
}
您只需使用Visual Studio函数将您的json转换为模型类
转到: 编辑 - >粘贴特殊 - >粘贴JSON作为类
此功能创建的模型类将解决您的问题
所以,visiblely,必须重命名SettlementsSap
通过Settlements
public class OrderFund
{
public string settlementMethod { get; set; }
public int BrokerID { get; set; }
public int OrderID { get; set; }
public Settlement[] Settlements { get; set; }
}
public class Settlement
{
public string SapMonetaryAccountNo { get; set; }
public string SapMonetaryAccountType { get; set; }
public string SapMonetaryAccountOffice { get; set; }
}
问题在于命名。 在JSON中,名称是Settlements
。 但在OrderFund
的类定义中,它被命名为SettlementsSap
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.