XElement DataType到Newtonsoft.json

时间:2012-08-30 13:35:37

标签: c# json linq-to-xml json.net

我是json的新手,在尝试使用特定数据类型序列化对象时遇到了一些问题。

我正在尝试将我的XElement对象序列化为Newtonsoft json。这是我的代码:

var nodes = new XElement("nodes");
nodes.Add(new XElement("name", "Anna"));
nodes.Add(new XElement("group", 0));

context.Response.Write(JsonConvert.SerializeXNode(nodes, Formatting.Indented, true));

回复是:

{
 "nodes": [
  {
    "name": "Anna",
    "group": "0"
  }
]}

我需要将Xelement GROUP转换为整数(“group”:0),但它始终采用strnig格式。如何管理数据类型? 谢谢

2 个答案:

答案 0 :(得分:1)

请参阅:How to XML Serialize a 'Type'

XML不会序列化类型信息,因此您可能需要将XML反序列化为对象并将其序列化为JSON。

答案 1 :(得分:1)

如果不是必须从XElement序列化,则可以使用ExpandoObject

dynamic obj = new ExpandoObject();
obj.nodes = new object[] { new { name = "Anna", group = 0 } };

var jstr = JsonConvert.SerializeObject(obj, Newtonsoft.Json.Formatting.Indented);