我有以下类型为 {Newtonsoft.Json.Linq.JArray} 的变量。
{Newtonsoft.Json.Linq.JArray}
properties["Value"] {[ "Name": "Username", "Selected": true "Name": "Password", "Selected": true ]}
我想要完成的是将其转换为 List<SelectableEnumItem> ,其中 SelectableEnumItem 是以下类型:
List<SelectableEnumItem>
SelectableEnumItem
public class SelectableEnumItem public string Name { get; set; } public bool Selected { get; set; } }
我对编程比较陌生,我不确定这是否可能。任何对工作示例的帮助都将非常感谢。
发布于 2015-03-23 20:40:55
问题中的示例是一个更简单的情况,其中属性名称在json和代码中完全匹配。如果属性名称不完全匹配,例如json中的属性为 "first_name": "Mark" ,而代码中的属性为 FirstName ,则使用 Select method ,如下所示
"first_name": "Mark"
FirstName
List<SelectableEnumItem> items = ((JArray)array).Select(x => new SelectableEnumItem FirstName = (string)x["first_name"], Selected = (bool)x["selected"] }).ToList();
发布于 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": "[email protected]", "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;