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

将JSON对象反序列化为C#列表分享

时间:2023-04-10 18:27:08 C#

C#学习教程:将JSON对象反序列化为C#列表这对于不在列表中的XML数据非常有效,但我想反序列化具有以下结构的JSON文件:publicclassData{publicstringAtt1{get;放;}公共字符串Att2{得到;放;}publicstringAtt3}publicstringAtt4{get;放;}}publicclassRootObject{publicListListname{get;能够显示列表。到目前为止我的想法(这不起作用):varresp=awaitclient.DoRequestJsonAsync("URL");字符串t=resp.ToString();var_result=Newtonsoft.Json.JsonConvert.DeserializeObject(t);XAMLELEMENT.ItemsSource=_result;所以我认为您可能正在尝试反序列化为错误的类型。如果您将其序列化为RootObject并尝试将其反序列化为List,它将失败。请参看此示例代码publicvoidTestMethod1(){varitems=newList{newItem{Att1="ABC",Att2="123"},newItem{Att1="EFG",Att2="456"},newItem{Att1="HIJ",Att2="789"}};varroot=newRoot(){Items=items};varitemsSerialized=JsonConvert.SerializeObject(items);varrootSerialized=JsonConvert.SerializeObject(root);//这有效vardeserializedItemsFromItems=JsonConvert.DeserializeObject>(itemsSerialized);//这有效vardeserializedRootFromRoot=JsonConvert.DeserializeObject(rootSerialized);//这会失败。您将其序列化为root并尝试反序列化为ListvardeserializedItemsFromRoot=JsonConvert.DeserializeObject>(rootSerialized);//出于同样的原因,这也会失败vardeserializedRootFromItems=JsonConvert.DeserializeObject(itemsSerialized);}classRoot{publicIEnumerableItems{get;放;}}classItem{publicstringAtt1{get;放;}公共字符串Att2{得到;放;}}编辑:添加完整代码。以上就是C#学习教程:将JSON对象反序列化为C#列表。如果对你有用,需要了解更多C#学习教程,希望大家多加关注——本文收集自网络,不代表立场,如涉及侵权,请点击右转联系管理员删除。如需转载请注明出处: