使用JsonConvert将c#中的JSON转换为对象
本文关键字:转换 对象 JSON 中的 JsonConvert 使用 | 更新日期: 2023-09-27 18:03:01
我试图反序列化我的JSON符号到一个对象。我得到这个错误:{"Newtonsoft.Json.Linq。JProperty'不包含'id'的定义"}
这是我在json3中表示的JSON:
string json3 = "{'Rows':[{'id':'1017','ischecked':'true'},{'id':'1018','ischecked':'false'}]}"
下面是我的c#代码:
dynamic dynJson = JsonConvert.DeserializeObject(json3);
foreach (var item in dynJson)
{
Console.WriteLine("{0} {1}'n", item.id, item.ischecked);
}
我的JSON格式不正确吗?这看起来应该很直接。
为什么不像这样创建对象并描述它
public class Row
{
public int ID { get; set; }
public bool ischecked { get; set; }
}
List<Row> list = JsonConvert.DeserializeObject<List<Row>>(stringofjson);
如果它不工作,试试这个方法
public class RowJson
{
[JsonProperty("Rows")]
public Row Row { get; set; }
}
public class Row
{
public int ID { get; set; }
public bool ischecked { get; set; }
}
List<RowJson> list = JsonConvert.DeserializeObject<List<RowJson>>(stringofjson);
谢谢Pranay,这是我最后使用的。你离我很近,让我走上了正确的道路。下面的代码适用于两种格式的JSON,每种格式都在变量json2和json3中表示。
类:
using Newtonsoft.Json;
public class CheckBoxResultsJson
{
public List<boCheckBoxResult> checkboxes { get; set; }
}
public class boCheckBoxResult
{
public int id { get; set; }
public bool ischecked { get; set; }
}
使用JSON的代码:
//string json2 = "{'"checkboxes'":[{'"id'":'"1018'",'"ischecked'":'"true'"},{'"id'":'"1019'",'"ischecked'":'"true'"},{'"id'":'"1020'",'"ischecked'":'"true'"},{'"id'":'"1017'",'"ischecked'":'"true'"},{'"id'":'"1021'",'"ischecked'":'"true'"},{'"id'":'"18'",'"ischecked'":'"true'"}]}";
string json3 = "{'checkboxes':[{'id':'1017','ischecked':'true'},{'id':'1018','ischecked':'false'}]}";
//CheckBoxResultsJson checkBoxResultJson = (CheckBoxResultsJson)JsonConvert.DeserializeObject(json2, typeof(CheckBoxResultsJson));
CheckBoxResultsJson checkBoxResultJson = (CheckBoxResultsJson)JsonConvert.DeserializeObject(json3, typeof(CheckBoxResultsJson));
Console.WriteLine(checkBoxResultJson.checkboxes.Count.ToString());
foreach(boCheckBoxResult x in checkBoxResultJson.checkboxes)
{
int id = x.id;
}