用JSON填充现有对象



我使用Json填充一个类。像这样:

var account = JsonConvert.DeserializeObject<Account>(result.ToString());

上面的结果JSON字符串在我的Account类中填充了几个属性。后来我有了一个新的JSON字符串,并希望用剩余的属性填充相同的Account类。这是可能的使用JSON。NET还是JsonConvert方法?我基本上想在上面的代码行中添加/添加帐户对象。

我的类:

public class Account
{
    public string CID { get; set; }            
    public string jsonrpc { get; set; }
    public string id { get; set; }
    public List<string> mail { get; set; }
    public List<string> uid { get; set; }
    public List<string> userPassword { get; set; }            
}

是的,您可以使用JsonConvert.PopulateObject()从第二个JSON字符串中填充现有对象的属性。

下面是一个例子:

string json1 = @"
{
    ""CID"": ""13579"",
    ""jsonrpc"": ""something"",
    ""id"": ""24680""
}";
Account account = JsonConvert.DeserializeObject<Account>(json1);
string json2 = @"
{
    ""mail"": [ ""abc@example.com"", ""def@example.org"" ],
    ""uid"": [ ""87654"", ""192834"" ],
    ""userPassword"": [ ""superSecret"", ""letMeInNow!"" ]
}";
JsonConvert.PopulateObject(json2, account);
Console.WriteLine("CID: " + account.CID);
Console.WriteLine("jsonrpc: " + account.jsonrpc);
Console.WriteLine("id: " + account.id);
Console.WriteLine("mail: " + string.Join(", ", account.mail));
Console.WriteLine("uid: " + string.Join(", ", account.uid));
Console.WriteLine("userPassword: " + string.Join(", ", account.userPassword));
输出:

CID: 13579
jsonrpc: something
id: 24680
mail: abc@example.com, def@example.org
uid: 87654, 192834
userPassword: superSecret, letMeInNow!

小提琴:https://dotnetfiddle.net/621bfV

相关内容

  • 没有找到相关文章

最新更新