反序列化后无法获取从xml文件返回的项目列表
Posted
技术标签:
【中文标题】反序列化后无法获取从xml文件返回的项目列表【英文标题】:Can't get the list of items returned from xml file after deserialization 【发布时间】:2021-06-06 23:07:26 【问题描述】:-
列表项
我从 xml 文件中转换并剥离了所有命名空间并转换为 Json 对象,下面是我在 jobject 中的文件这是我为获取返回的 Env 对象所做的,但它返回 null。
您能帮忙指出我的模型中缺少什么吗?我一直在做不同的路线但没有成功:(
var jsonObject =
JObject.Parse(Newtonsoft.Json.JsonConvert.SerializeXNode(XDocument.Parse(responseRet)));
var Env= Newtonsoft.Json.JsonConvert.DeserializeObject<Envelope>(jsonObject.ToString());
```
这是我的课:
公共类 SearchRecords_V2
公共列表
公共类 SearchTXRecord_V2 [数据成员] 公共 int SearchTXRecordID 获取;放; [数据成员] 公共字符串名字 获取;放; [数据成员] 公共字符串 MiddleName 获取;放; [数据成员] 公共字符串姓氏得到;放; [数据成员] 公共字符串后缀 获取;放; [数据成员] 公共字符串 SSN 获取;放; [数据成员] 公共字符串地址 获取;放; [数据成员] 公共字符串城市获取;放; [数据成员] 公共字符串状态获取;放; [数据成员] 公共字符串 PostalCode 获取;放; [数据成员] 公共字符串 ComponentID 获取;放; [数据成员] 公共字符串状态获取;放; [数据成员] 公共字符串创建获取;放;
【问题讨论】:
您好,欢迎来到 SO!以上json
无效。我要做的是创建代表这个json
的c#
类,然后您可以轻松地反序列化它并执行您想要的任何搜索。有许多 json 到 c# 在线生成器可以帮助您创建这些类,这里有一些:JSON2CSharp 和 QuickType。你能告诉我们json
是如何序列化的,你是这样得到它的,还是你正在创造它?
【参考方案1】:
通过使用Newtonsoft.json 库,您可以将其解析为点网模型
型号:
namespace ConvertFromJson
public partial class DemoJsonObj
public Employees Employees get; set;
public partial class Employees
public List<Employee> Employee get; set;
public partial class Employee
public long Id get; set;
public string FirstName get; set;
public string LastName get; set;
public Uri Photo get; set;
public string SearchType get; set;
public SearchRecords SearchRecords get; set;
public partial class SearchRecords
public List<SearchTestRecord> SearchTestRecord get; set;
public partial class SearchTestRecord
public long Field1 get; set;
public string Field2 get; set;
public RecordType RecordType get; set;
public partial class RecordType
public NativeRecordNumber NativeRecordNumber get; set;
public partial class NativeRecordNumber
public Uri Xmlns get; set;
public string Text get; set;
在您的代码中
var json = ""employees":"employee":["id":"1","firstName":"Tom","lastName":"Cruise","photo":"https://jsonformatter.org/img/tom-cruise.jpg","SearchType":"type1","id":"2","firstName":"Maria","lastName":"Sharapova","photo":"https://jsonformatter.org/img/Maria-Sharapova.jpg","SearchType":"type1","SearchRecords":"SearchTestRecord":["field1":"128181","field2":"TESTCASE","RecordType":"NativeRecordNumber":"@xmlns":"http://schemas.link.com/searchType/1.0.0/","#text":"MPXXXX2011"],"id":"3","firstName":"Robert","lastName":"Downey Jr.","photo":"https://jsonformatter.org/img/Robert-Downey-Jr.jpg","SearchType":"type2"]"
DemoJsonObj obj = Newtonsoft.Json.JsonConvert.DeserializeObject<DemoJsonObj>(json);
【讨论】:
谢谢你,我已经按照你的指示在这里了。但是, List以上是关于反序列化后无法获取从xml文件返回的项目列表的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 Jackson XML 直接在根元素内反序列化列表