在 C# 中从 Json 数组转换为 List<T> 或 T[]
Convert to List<T> or T[] from Json array in C#
我有一个json数据:
"{'"list'":[{'"PlId'":1,'"PstId'":1,'"MonthlyValue'":'"00,00'"},{'"PlId'":2,'"PstId'":1,'"MonthlyValue'":'"00,00'"},{'"PlId'":3,'"PstId'":1,'"MonthlyValue'":'"00,00'"},{'"PlId'":4,'"PstId'":1,'"MonthlyValue'":'"00,00'"},{'"PlId'":5,'"PstId'":1,'"MonthlyValue'":'"00,00'"}]}"
我想将json数据转换为List,但JsonConvert.Deserialize(jsonData)返回null。
[Serializable]
public class DecryptedMonthlyPremiumScale
{
[DataMember]
public int PlId { get; set; }
[DataMember]
public int PstId { get; set; }
[DataMember]
public string MonthlyValue { get; set; }
}
我尝试了这种方法:如何使用JSON,jQuery发布复杂对象的数组 ASP.NET MVC控制器?
怎么了?谢谢。
您需要创建一个包装类才能正确反序列化:
[Serializable]
public class DecryptedMonthlyPremiumScale
{
[DataMember]
public int PlId { get; set; }
[DataMember]
public int PstId { get; set; }
[DataMember]
public string MonthlyValue { get; set; }
}
public class Root
{
public IList<DecryptedMonthlyPremiumScale> list {get;set;}
}
var obj = JsonConvert<Root>(json);
另一种方法是使用 JObject
获取根元素,然后反序列化:
var parsed = JObject.Parse(json)["list"].ToObject<IList<DecryptedMonthlyPremiumScale>>();
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 如何在GoogleWeb工具包(GWT)中从JSNI调用接口(实例化)
- 如何在react js中从一个页面导航到另一个页面
- 如何在iOS应用程序中从Firebase中删除超过6小时的数据
- 如何在Angular单元测试中从另一个控制器的rootScope将方法添加到rootScope中
- 如何在Javascript中从字符串中提取某些单词
- 如何在corona sdk中从CK编辑器中检索数据
- 如何在reactrouterv2.+中从URL获取参数
- 如何在NativeScript中从列表中删除项目时设置动画
- 如何在Webpack中从导出中排除供应商模块peerDependencies
- 如何在Javascript中从数组中删除条目
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- 在Internet Explorer中从二进制文件打开PDF
- 如何在cycle js中从JSON数组创建组件
- 在Android中从signalR调用服务器端功能
- 无法在Windows 10 Cordova应用程序中从Web视图进行ajax调用
- 在 C# 中从 Json 数组转换为 List
或 T[] - 如何在IE中从列表中删除list-it(li)元素
- 从API中提取数据到Ionic list中