我有一对看起来像这样的类:
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);
然后我使用id
的{{1}}进行另一次API调用,返回有关child
的更多详细信息,我需要用它来填充child
:< / p>
parent
如何使用{
“child”:{
“id”:”456”,
“name”:”child name”
}
}
JSON字符串中的数据填充Parent
类的其余部分?
答案 0 :(得分:2)
如果我理解正确,您只需要为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;
}
答案 1 :(得分:0)
我没有对此进行过测试,但我相当肯定你可以这样做:
var child = new JavaScriptSerializer().Deserialize<Child>(jsonString);
假设您想要的只是更新您的子课程,那么应该没有更多内容。
这似乎效率低下,我不知道为什么第一次api调用没有提供完整的子对象。