使用 JSON 填充现有对象
Populate an existing object with JSON
我像这样使用 Json.Net 填充 class:
var account = JsonConvert.DeserializeObject<Account>(result.ToString());
上面的结果 JSON 字符串填充了我的 Account
class 中的几个属性。我后来有了一个新的 JSON 字符串,并想用其余属性填充相同的 Account
class。这可能使用 JSON.NET 或 JsonConvert
方法吗?我基本上想 append/add 到我在上面的代码行中填充的帐户对象。
我的class:
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!
Fiddle: https://dotnetfiddle.net/621bfV
我像这样使用 Json.Net 填充 class:
var account = JsonConvert.DeserializeObject<Account>(result.ToString());
上面的结果 JSON 字符串填充了我的 Account
class 中的几个属性。我后来有了一个新的 JSON 字符串,并想用其余属性填充相同的 Account
class。这可能使用 JSON.NET 或 JsonConvert
方法吗?我基本上想 append/add 到我在上面的代码行中填充的帐户对象。
我的class:
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!
Fiddle: https://dotnetfiddle.net/621bfV