我正在制作一个基本的WPF c#聊天应用程序,并希望允许用户注册一个帐户。该程序将附加具有以下结构的JSON文件:
{
"user1":{
"password":"password1"
},
"user2":{
"password":"password2"
}
}
用用户名替换user1&2,用密码替换password1&2。
我尝试使用方括号;
//user is the name of the TextBox that the user puts their username into
//pass is the name of the password box ^
Object [user.Text] = new
{
password = new {
pass.Password
}
};
但是就是这样。
答案 0 :(得分:0)
最简单的方法是反序列化现有数据,添加新注册的用户。再次序列化它。 例如,如果需要用户,请给出当前示例。
var currentUserCollection = JsonConvert.DeserializeObject<Dictionary<string,Dictionary<string,string>>>(str);
currentUserCollection.Add("user3",new Dictionary<string,string>{["password"]="password3"});
var newJson = JsonConvert.SerializeObject(currentUserCollection);
这将产生如下输出
{
"user1": {
"password": "password1"
},
"user2": {
"password": "password2"
},
"user3": {
"password": "password3"
}
}
答案 1 :(得分:0)
我不确定为什么要尝试将用户作为不同的条目。您的用例是否将所有用户的集合保存在JSON文件中?如果是这样,您可以将json对象结构更改为更简单的对象。 例如:
public class UserSet {
public List<User> Users {get; set;}
}
public class User{
public string UserName { get; set; }
public string Password { get; set; }
}
然后,当您添加新用户时,只需使用其用户名和密码创建一个新对象,然后将其添加到所有用户的列表中即可。