如果您在C#中直接使用此字符串,并且您没有使用值,则需要先对其进行反序列化。 JsonConvert使用Newtonsoft.Json。
string dataObj = "{\"Items\": [{\"id\":1},{\"id\":2}]}";
dynamic data = JsonConvert.DeserializeObject(dataObj);
然后,您可以使用下面的webapi函数内部的代码来创建您的xml。如果您将这些数据传递给C#中的webapi,以下是代码。
你可以简单地使用一个stringbuilder。
[Route("api/common/JsonToXml")]
[AcceptVerbs("POST")]
public HttpResponseMessage JsonToXml(dynamic data)
{
StringBuilder str = new StringBuilder();
str.Append("<Items>");
for (var ic = 0; ic < data.Items.Count; ic++)
{
str.Append("<element><id>");
str.Append(Convert.ToInt32(data.Items[ic].id));
str.Append("</id></element>");
}
str.Append("</Items>");
return Request.CreateResponse(HttpStatusCode.OK, Convert.ToString(str));
}
或者你可以按如下定义你的类。使用Newtonsoft.Json,序列化和反序列化。
public class Items
{
public Items() {
this.element = new List<Element>();
}
public List<Element> element;
}
public class Element
{
public Element(int id) {
this.Id = id;
}
public int Id;
}
[Route("api/common/JsonToXml")]
[AcceptVerbs("POST")]
public HttpResponseMessage JsonToXml(dynamic data)
{
Items list = new Items();
list.element = new List<Element>();
for (var ic = 0; ic < data.Items.Count; ic++)
{
list.element.Add(new Element(Convert.ToInt32(data.Items[ic].id)));
}
XmlDocument xmlData = JsonConvert.DeserializeXmlNode(JsonConvert.SerializeObject(list), "Items");
return Request.CreateResponse(HttpStatusCode.OK, xmlData.OuterXml);
}
JsonConvert.DeserializeXNode。使用Newtonsoft – Ramankingdom
[如何将JSON转换为XML或XML到JSON?](https://stackoverflow.com/questions/814001/how-to-convert-json-to-xml-or-xml-to- json) –
https://www.newtonsoft.com/json/help/html/ConvertJsonToXml.htm – Ramankingdom