所以我试图找回多个json响应,将它们全部合并为一个JSON字符串并将其传递给视图。然后我可以遍历单个响应并访问所有响应。
到目前为止,我无法让它发挥作用。我认为最简单的方法是将JSON字符串转换为xmlnodes,将xmlnodes添加到文档中,然后将文档转换回单个json字符串。
这是我的代码。
string json1 = GetXmlData();
string json2 = GetRestfulData();
XmlDocument doc = new XmlDocument();
XmlNode root = doc.CreateElement("root");
XmlDocument string1 = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"str1\":" + json1 + "}", "str1");
XmlNode node1 = doc.ImportNode(string1.FirstChild, true);
XmlDocument string2 = (XmlDocument)JsonConvert.DeserializeXmlNode("{\"str2\":" + json2 + "}", "str2");
XmlNode node2 = doc.ImportNode(string2.FirstChild, true);
doc.AppendChild(node1);
doc.AppendChild(node2);
string response = JsonConvert.SerializeXmlNode(doc);
return response;
但到目前为止,我所尝试的所有内容都会导致错误。有更好的方法来完成这项工作或完成上述工作吗?
上面给出的错误是" doc"在尝试添加node2时已经有一个documentElement节点。
谢谢!
答案 0 :(得分:1)
如果我看一下JSON format,我会说你可以简单地使用String.Join
所有JSON对象并在它们周围加上方括号。
var jsonObjects = new List<string>();
jsonObjects.Add("{ 'firstName':'John' , 'lastName':'Doe' }");
jsonObjects.Add("{ 'firstName':'Anna' , 'lastName':'Smith' }");
jsonObjects.Add("{ 'firstName':'Peter' , 'lastName':'Jones' }");
var jsonObjectsArray = "[" + String.Join(jsonObjects, ", ") + "]";