我有一对看起来像这样的类:
public class Parent
{
public int id { get; set; }
public string name { get; set; }
public List<Child> children { get; set; }
}
public class Child
{
public int id { get; set; }
public string name { get; set; }
}
为了填充父班,我进行了一个API调用,并选择了返回的JSON,看起来像这样:
json
{
“parent”:{
“id”:”123”,
“name”:”parent name”,
“child”:{
“id”:”456″
},
}
}
c#
var parent = new JavaScriptSerializer().Deserialize<List<Parent>>(jsonString);
然后,我使用child
的id
进行另一个API调用,该调用返回有关child
的更多详细信息,我需要用来填充parent
:
{
“child”:{
“id”:”456”,
“name”:”child name”
}
}
如何使用child
JSON字符串的数据填充Parent
类的其余部分?
如果我正确理解,您所需要的只是向Parent.children
中的每个偏爱孩子提出请求,然后用完整的儿童信息代替整个收藏:
var parents = new JavaScriptSerializer().Deserialize<List<Parent>>(jsonString);
foreach (var parent in parents) {
var fullChildren = new List<Child>();
foreach (var partialChild in parent.children) {
var fullChild = GetChildJsonById(partialChild.id);
fullChildren.Add(fullChild);
}
// just replace whole stuff
parent.children = fullChildren;
}
我没有测试过,但是我可以肯定您可以做类似:
的事情var child = new JavaScriptSerializer().Deserialize<Child>(jsonString);
假设您只想更新孩子课程,那么不应该有更多的事情。
这似乎效率低下,我不知道为什么第一个API调用中没有给出完整的子对象。