【发布时间】:2018-12-21 01:44:29
【问题描述】:
我有一个从 json 响应反序列化的 Data 对象,该响应具有以下格式的属性:
[0] ....
组名:“组 1”
成员列表:[UserID 的字符串数组]
[1]
组名:“第 2 组”
成员列表:[UserID 的字符串数组]
。
。等等
我想将其展平,使其仅返回 2 列,例如:
用户 ID、名称
1,第 1 组
2,第 1 组
3,第 1 组
4,第 2 组
5,第 2 组
等等。
UserID 在所有组中都是唯一的,即用户只是 1 个组的成员
我试过了:
var group = JsonConvert.DeserializeObject(<My Json File>);
var gpObject = JsonConvert.DeserializeObject<GroupDetailResponse>(group.ToString());
var memberGroup = gpObject.Data.Select(y => new { UserId = y.Memberlist.SelectMany(sl => y.memberlist).ToArray(), GroupName = y.Id }).ToArray();
但这并没有返回我在上面所期望的。
任何帮助将不胜感激 - 谢谢。
JSON 片段:
"data": [
{
"id": "ZZ1",
"name": "Group1",
"memberList": [
"User1",
"User2",
"User3"
]
},
{
"id": "ZZ2",
"name": "Group2",
"memberList": [
"User4",
"User5"
],
}
]
还有 DTO:
public class GroupDetailResponse
{
[JsonProperty("data")]
public GroupInformation[] Data { get; set; }
}
public class GroupInformation
{
[JsonProperty("id")]
public string Id { get; set; }
[JsonProperty("name")]
public string Name { get; set; }
[JsonProperty("memberList")]
public string[] MemberList { get; set; }
}
}
【问题讨论】:
-
如果你发布一个json对象的样本会更好,第一行反序列化的类型是什么/显示
GroupDetailResponse类? -
现在已经在上面添加了这些细节。为含糊而道歉!