相关疑难解决方法(0)

将XML转换为JSON时保留json:Array属性

我有一块看起来像的XML

<person xmlns:json='http://james.newtonking.com/projects/json' id='1'>
   <name>Alan</name>
   <url>http://www.google.com</url>
   <role json:Array='true'>Admin</role>
</person>
Run Code Online (Sandbox Code Playgroud)

当我尝试将其序列化为json时,string json = JsonConvert.SerializeXmlNode(xml);它会忽略名称空间

 {
  "person": {
    "@id": "1",
    "name": "Alan",
    "url": "http://www.google.com",
    "role": [
      "Admin"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

当我将它反序列化回xml时XmlDocument xml = JsonConvert.DeserializeXmlNode(json),我得到以下内容:

<person id='1'>
 <name>Alan</name>
  <url>http://www.google.com</url>
  <role>Admin</role>
</person>
Run Code Online (Sandbox Code Playgroud)

我该如何保留json:Array属性?

c# xml json json.net

9
推荐指数
1
解决办法
1346
查看次数

JSON 计数仅返回 1 而不是 2

我有这行代码(总是返回 1):

int rowsCount = token["rows"].Count();
Run Code Online (Sandbox Code Playgroud)

其中 token["rows"] 是:

    {
  "component": [
    {
      "tag": "CUT",
      "missingValue": "",
      "format": "Cont",
      "varName": "GPA",
      "label": "Grade point average",
      "element": [
        {
          "startValue": "1",
          "endValue": "249",
          "label": "Lower than 2.50"
        },
        {
          "startValue": "250",
          "endValue": "299",
          "label": "2.50 - 2.99"
        },
        {
          "startValue": "300",
          "endValue": "349",
          "label": "3.00 - 3.49"
        },
        {
          "startValue": "350",
          "endValue": "400",
          "label": "3.50 or higher"
        }
      ]
    },
    {
      "tag": "CAT",
      "missingValue": "",
      "format": "Disc",
      "varName": "STEMMAJ",
      "label": "Major …
Run Code Online (Sandbox Code Playgroud)

.net c# json json.net

1
推荐指数
1
解决办法
1302
查看次数

强制JSON.NET将xml转换为json数组

我正在使用JSON.NET将一些XML转换为JSON.

我的XML看起来像这样:

<Root>
    <Product>
        <Name />
        <Id />
    </Product>
    <Product>
        <Name />
        <Id />
    </Product>
</Root>
Run Code Online (Sandbox Code Playgroud)

我使用这种方法转换xml:

private string ConvertToJson(string xml)
{
    XmlDocument XmlDoc = new XmlDocument();
    XmlDoc.LoadXml(xml);

    var JsonString = JsonConvert.SerializeXmlNode(XmlDoc);
    return JsonString;
}
Run Code Online (Sandbox Code Playgroud)

只要有多个产品,JSON.NET就会创建一个JSON数组.但是,如果只有一个产品,JSON.NET将不会创建JSON数组,但我需要它.

有什么方法可以强制它创建一个JSON数组?

.net c# json json.net

1
推荐指数
1
解决办法
2180
查看次数

标签 统计

c# ×3

json ×3

json.net ×3

.net ×2

xml ×1