我正在使用newtonsoft.json来(de)序列化json文件。我想在json文件中分隔我的用户,目前我的json文件是这样的:
[
{
"name": "examplename",
"inviteID": "",
"inviteCount": "",
"invited": ""
},
{
"name": "examplename2",
"inviteID": "",
"inviteCount": "",
"invited": ""
}
]
但是我想给他们这样的标识符:
[
"namehere"[
{
"inviteID": "",
"inviteCount": "",
"invited": ""
}
]
我希望这能让用户更容易找到并且不必遍历每个用户,直到找到合适的用户为止。 目前的代码:
if(foundinviter == false)
{
User theuser = new User
{
name = inviterUsername,
inviteID = inviteID,
inviteCount = inviteCount.ToString(),
invited = invited
};
userslist.Add(theuser);
}
}
string updatedjson = JsonConvert.SerializeObject(userslist, Formatting.Indented);
File.WriteAllText("InviteData/data.json", updatedjson);
答案 0 :(得分:1)
您的JSON格式不正确,但从我所看到的,这可以做您想要的。
JsonConvert.SerializeObject(userslist.ToDictionary(k => k.name, v => v),Formatting.Indented)
如果你不想要两次提名
[JsonIgnore]
public string name { get; set; }
在财产上 如果名称在集合中不唯一,请执行
userslist.GroupBy(i=>i.Name).ToDictionary(k => k.Key, v => v)
您将收集作为子项。