相关文章推荐
淡定的李子  ·  12.2 计数时间序列 | 预测: 方法与实践·  1 年前    · 
朝气蓬勃的石榴  ·  iframe之键盘事件监听 - 莫小龙 - 博客园·  1 年前    · 
自信的数据线  ·  Legal Statement - ...·  1 年前    · 
性感的香槟  ·  kolla-ansible ...·  2 年前    · 
寂寞的山楂  ·  等待Python在下一个循环之前完成-腾讯云 ...·  2 年前    · 
Code  ›  将Newtonsoft.Json.Linq.JArray转换为特定对象类型的列表开发者社区
https://cloud.tencent.com/developer/ask/sof/31054
慷慨大方的吐司
3 年前
首页
学习
活动
专区
工具
TVP
返回腾讯云官网
提问
问 将Newtonsoft.Json.Linq.JArray转换为特定对象类型的列表
Stack Overflow用户
提问于 2012-11-26 20:52:20
EN

我有以下类型为 {Newtonsoft.Json.Linq.JArray} 的变量。

properties["Value"] {[
    "Name": "Username",
    "Selected": true
    "Name": "Password",
    "Selected": true
]}

我想要完成的是将其转换为 List<SelectableEnumItem> ,其中 SelectableEnumItem 是以下类型:

public class SelectableEnumItem
        public string Name { get; set; }
        public bool Selected { get; set; }
    }

我对编程比较陌生,我不确定这是否可能。任何对工作示例的帮助都将非常感谢。

5 288.1K 0 票数 281
EN
c#
json.net

回答 5

Stack Overflow用户

发布于 2015-03-23 20:40:55

问题中的示例是一个更简单的情况,其中属性名称在json和代码中完全匹配。如果属性名称不完全匹配,例如json中的属性为 "first_name": "Mark" ,而代码中的属性为 FirstName ,则使用 Select method ,如下所示

List<SelectableEnumItem> items = ((JArray)array).Select(x => new SelectableEnumItem
    FirstName = (string)x["first_name"],
    Selected = (bool)x["selected"]
}).ToList();
票数 45
EN

Stack Overflow用户

发布于 2018-02-05 00:07:22

在我的例子中,API返回值如下:

{
  "pageIndex": 1,
  "pageSize": 10,
  "totalCount": 1,
  "totalPageCount": 1,
  "items": [
      "firstName": "Stephen",
      "otherNames": "Ebichondo",
      "phoneNumber": "+254721250736",
      "gender": 0,
      "clientStatus": 0,
      "dateOfBirth": "1979-08-16T00:00:00",
      "nationalID": "21734397",
      "emailAddress": "sebichondo@gmail.com",
      "id": 1,
      "addedDate": "2018-02-02T00:00:00",
      "modifiedDate": "2018-02-02T00:00:00"
  "hasPreviousPage": false,
  "hasNextPage": false
}

将items数组转换为客户端列表的过程如下所示:

 if (responseMessage.IsSuccessStatusCode)
            var responseData = responseMessage.Content.ReadAsStringAsync().Result;
 
推荐文章
淡定的李子  ·  12.2 计数时间序列 | 预测: 方法与实践
1 年前
朝气蓬勃的石榴  ·  iframe之键盘事件监听 - 莫小龙 - 博客园
1 年前
自信的数据线  ·  Legal Statement - Tencent 腾讯
1 年前
性感的香槟  ·  kolla-ansible all-in-one ansible_facts.python.executable 指向的python位置不符合预期 - CSDN文库
2 年前
寂寞的山楂  ·  等待Python在下一个循环之前完成-腾讯云开发者社区-腾讯云
2 年前
今天看啥   ·   Py中国   ·   codingpro   ·   小百科   ·   link之家   ·   卧龙AI搜索
删除内容请联系邮箱 2879853325@qq.com
Code - 代码工具平台
© 2024 ~ 沪ICP备11025650号