热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:将JSON数组反序列化为强类型的.NET对象

篇首语:本文由编程笔记#小编为大家整理,主要介绍了将JSON数组反序列化为强类型的.NET对象相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了将JSON数组反序列化为强类型的.NET对象相关的知识,希望对你有一定的参考价值。



[当我可以调用第三方api并获取单个类的数据时,使用此代码可以反序列化一切正常

TheUser me = jsonSerializer.Deserialize(response, typeof(TheUser)) as TheUser

当我尝试反序列化数组的JSON响应内容时出现问题,例如

{
"data": [
{
"name": "A Jones",
"id": "500015763"
},
{
"name": "B Smith",
"id": "504986213"
},
{
"name": "C Brown",
"id": "509034361"
}
]
}

我只能在“数据”成员周围使用自定义包装类,并且该成员的类型必须为List,才能使序列化工作。如果它的类型为List,则可以从ArgumentException方法中获得JsonParser DesializeType

我最初试图在没有这种包装类型的情况下进行序列化

List freinds = jsonSerializer.Deserialize(response, typeof(List)) as List;

但这只是返回一个空集合。当然,我必须能够使数组反序列化为强类型列表。

答案
如果直接使用Json.Net,则可以反序列化为包装对象内部的强类型集合。
另一答案
None
另一答案
None
另一答案
None
另一答案
None
另一答案
,即使只有1个条目。
另一答案
public class UsersResponse
{
public List Data { get; set; }
}
另一答案
using (var webClient = new WebClient())
{
var respOnse= webClient.DownloadString(url);
JObject result = JObject.Parse(response);
var users = result.SelectToken("data");
List userList = JsonConvert.DeserializeObject>(users.ToString());
}

推荐阅读
author-avatar
烟台中海地产有限公司往
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有