当前位置: 首页 > 编程语言 > C#

Json.NET:使用对象列表进行反序列化分享

时间:2023-04-10 22:32:57 C#

C#学习教程:Json.NET:使用对象列表进行反序列化我正在使用Json.NET将它们反序列化为包含产品列表的对象。但是在我反序列化之后,当我查看我的serviceresponse对象时,我可以看到2个产品的列表。但是当我展开产品对象时,产品下的字段(名称、到期日期...等)都是空的。我认为我的问题在于我定义ServiceResponse类的方式。有人可以帮我解决问题并获得正确的输出。我的反序列化代码:serviceresponsedeserializedProduct=JsonConvert.DeserializeObject(json);我的Json响应字符串:{"serviceresponse":{"company":"ford","success":"Yes","products":[{"product":{"Name":"Product1","ExpiryDate":"/Date(978048000000)/","Price":"99.95","Sizes":"1"}},{"product":{"Name":"Product2","ExpiryDate":"/Date(1248998400000)/","Price":"12.50","Sizes":"1"}}],"callbackformore":"No","message":"1"}}我的服务响应类:[DataContract]publicclassserviceresponse{[DataMember]publicStringcompany;[DataMember]public字符串成功;[DataMember]public列表产品;[数据成员]publicStringcallbackformmore;[DataMember]public字符串消息;}[DataContract]publicclassproduct{[DataMember]publicStringName;[数据成员]publicStringExpiryDate;[数据成员]publicStringPrice;[DataMember]公共字符串大小;}从json中删除“product”对象名称,因为这只是一个没有命名项的数组。{“serviceresponse”:{“company”:“ford”,“success”:“是”,“products”:[{“Name”:“Product1”,“ExpiryDate”:“/Date(978048000000)/”,"Price":"99.95","Sizes":"1"},{"Name":"Product2","ExpiryDate":"/Date(1248998400000)/","Price":"12.50","Sizes"":"1"}],"callbackformore":"No","message":"1"}}我最终这样做了。我发现了这个很棒的工具Jsonclassgenerator。它可以为输入的Json字符串生成C#类。然后我打开生成的类,找到类的布局。并相应地修改了我的数据合同。就我而言,我必须围绕对象列表创建另一个数据合同。所以它应该看起来像这样。以上就是C#学习教程的全部内容:Json.NET:Deserializationusingtheobjectlist。如果对大家有用,需要进一步了解C#学习教程,希望大家多加关注——[DataContract]publicclassserviceresponse{[DataMember]publicStringcompany;[DataMember]public字符串成功;[DataMember]public列表产品;[数据成员]publicStringcallbackformmore;[DataMember]public字符串消息;}[DataContract]publicclassproduct{[DataMember(Name="product")]publicproduct2_product;}[DataContract(Name="product")]publicclassproduct2{[DataMember]publicStringName;[数据成员]publicStringExpiryDate;[数据成员]publicStringPrice;[DataMember]公共字符串大小;}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: