C# json转换为类并反序列化
我试图反序列化通过api调用获得的复杂json。我有两个问题C# json转换为类并反序列化,c#,json,C#,Json,我试图反序列化通过api调用获得的复杂json。我有两个问题 这就是我试图在站点上转换为类的json { “信息”:{ “总计数”:2, “当前页面总数”:2, “每页最大值”:500, “当前页码”:1, “总页数”:1 }, “实体数据”:{ “实体名称”:“\u05de\u05d0\u05d9\u05e8”, “实体数据名称”:“e_130”, “权限”:{ “类型”:“完整”, “代码”:“1” }, “视图”:“数据表” }, “数据”:[ { “实例数据”:{ “_id”:“60a3
{
“信息”:{
“总计数”:2,
“当前页面总数”:2,
“每页最大值”:500,
“当前页码”:1,
“总页数”:1
},
“实体数据”:{
“实体名称”:“\u05de\u05d0\u05d9\u05e8”,
“实体数据名称”:“e_130”,
“权限”:{
“类型”:“完整”,
“代码”:“1”
},
“视图”:“数据表”
},
“数据”:[
{
“实例数据”:{
“_id”:“60a3a82a956ecd3228739ced”,
“插入时间戳”:“2021-05-18T14:42:34+0300”,
“字段组”:[
{
“字段组数据”:{
“组名称”:“\u05e1\u05e4\u05e8\u05d8\u05dc\u05e4\u05d5\u05e0\u05d9\u05dd”,
“组数据名称”:“g_353”,
“组id”:“353”,
“可重复组”:“0”,
“权限”:{
“类型”:“完整”,
“代码”:“1”
}
},
“字段和数据”:[
[
{
“字段名称”:“\u05e9\u05dd\u05e4\u05e8\u05d8\u05d9”,
“字段类型名称”:“输入文本”,
“字段数据名称”:“fld\U 2372”,
“占位符”:空,
“默认值”:“,
“作为指定人行事”:,
“自定义_验证”:{
“无法编辑”:“0”,
“数据类型”:“0”
},
“值”:“\u05de\u05d0\u05d9\u05e8”,
“组索引”:0
},
{
“字段名称”:“\u05e9\u05dd\u05de\u05e9\u05e4\u05d7\u05d4”,
“字段类型名称”:“输入文本”,
“字段数据名称”:“fld\U 2373”,
“占位符”:空,
“默认值”:“,
“作为指定人行事”:,
“自定义_验证”:{
“无法编辑”:“0”,
“数据类型”:“0”
},
“值”:“\u05e8\u05d5\u05d8\u05e4\u05dc\u05d9\u05d9\u05e9”,
“组索引”:0
},
{
“字段名称”:“\u05d9\u05d9\u05e9\u05d5\u05d1\u05de\u05d2\u05d5\u05e8\u05d9\u05dd”,
“字段类型名称”:“选择列表”,
“字段数据名称”:“fld\U 2374”,
“占位符”:空,
“默认值”:“,
“可能的值”:“[\”\\u05db\\u05e4\\u05e8\\u05e1\\u05d1\\u05d0\”,\“\\u05ea\\u05dc\\u05d0\\u05d1\\u05d9\\u05d1\”,\“\\u05e2\\u05d6\\u05d4\”,\“\\u05d9\\u05e8\\u05d5\\u05e9\\u05dc\\u05d9\\u05dd\”,
“作为指定人行事”:,
“自定义_验证”:{
“无法编辑”:“0”,
按字母顺序排列:“0”
},
“值”:“\u05db\u05e4\u05e8\u05e1\u05d1\u05d0”,
“组索引”:0
},
{
“字段名称”:“\u05d8\u05dc\u05e4\u05d5\u05df”,
“字段类型名称”:“输入文本”,
“字段数据名称”:“fld\U 2375”,
“占位符”:空,
“默认值”:“,
“作为指定人行事”:,
“自定义_验证”:{
“无法编辑”:“0”,
“数据类型”:“0”
},
“值”:“055098393”,
“组索引”:0
},
{
“字段名称”:“\u05de\u05d9\u05d9\u05dc”,
“字段类型名称”:“输入电子邮件”,
“字段数据名称”:“fld\U 2376”,
“占位符”:空,
“默认值”:“,
“作为指定人行事”:,
“自定义_验证”:{
无法进行编辑:“0”
},
“值”:meir@arma.co.il",
“组索引”:0
}
]
]
}
]
},
“单一权限”:空
},
{
“实例数据”:{
“_id”:“60a3a7e6788c2124f12b5370”,
“插入时间戳”:“2021-05-18T14:
public class FieldGroup
{
public FieldGroupData field_group_data { get; set; }
public List<List<>> fields_data { get; set; }
}
...
"fields_data": [
[
{
"field_name": "\u05e9\u05dd \u05e4\u05e8\u05d8\u05d9",
"field_type_name": "input-text",
"field_data_name": "fld_2372",
"placeholder": null,
"default_value": "",
"act_as_assign": "",
"custom_validation": {
"unable_to_edit": "0",
"data_type": "0"
},
"value": "\u05de\u05d0\u05d9\u05e8",
"group_index": 0
}
...
Root root = JsonSerializer.Deserialize<Root>(json);
{
"field_name": "\u05e9\u05dd \u05e4\u05e8\u05d8\u05d9",
"field_type_name": "input-text",
"field_data_name": "fld_2372",
"placeholder": null,
"default_value": "",
"act_as_assign": "",
"custom_validation": {
"unable_to_edit": "0",
"data_type": "0"
},
"value": "\u05de\u05d0\u05d9\u05e8",
"group_index": 0
}
//The charp object for the json above
public class CustomValidation
{
public string unable_to_edit { get; set; }
public string data_type { get; set; }
}
public class Field
{
public string field_name { get; set; }
public string field_type_name { get; set; }
public string field_data_name { get; set; }
public object placeholder { get; set; }
public string default_value { get; set; }
public string act_as_assign { get; set; }
public CustomValidation custom_validation { get; set; }
public string value { get; set; }
public int group_index { get; set; }
}
//then correct "fields_data" type (List<List<>>) to "List<List<Field>>"
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
public class Info
{
public int total_count { get; set; }
public int current_page_total_count { get; set; }
public int max_each_page { get; set; }
public int current_page_number { get; set; }
public int total_pages { get; set; }
}
public class Permissions
{
public string type { get; set; }
public string code { get; set; }
}
public class EntityData
{
public string entity_name { get; set; }
public string entity_data_name { get; set; }
public Permissions permissions { get; set; }
public string view { get; set; }
}
public class FieldGroupData
{
public string group_name { get; set; }
public string group_data_name { get; set; }
public string group_id { get; set; }
public string repeatable_group { get; set; }
public Permissions permissions { get; set; }
}
public class FieldGroup
{
public FieldGroupData field_group_data { get; set; }
//correct "fields_data" type (List<List<>>) to "List<List<Field>>"
//public List<List<>> fields_data { get; set; }
public List<List<Field>> fields_data { get; set; }//List<List<Field>>
}
public class InstanceData
{
public string _id { get; set; }
public DateTime insertTimestamp { get; set; }
public List<FieldGroup> field_groups { get; set; }
}
public class Datum
{
public InstanceData instance_data { get; set; }
public object single_permission { get; set; }
}
public class Root
{
public Info info { get; set; }
public EntityData entity_data { get; set; }
public List<Datum> data { get; set; }
}