繁体   English   中英

我想将json对象中的xml字符串数据转换为java中的json

[英]I want to convert xml string data inside json object to json in java

以下是我的json字符串,我想将AdditionalDetails的数据转换为json字符串,但我无法成功。

{
  "docs": 70,
  "size": 250,
  "currentPageNo": 0,
  "recordStartFrom": 0,
  "columnHeader": [
    {
      "id": "0",
      "fieldName": "id",
      "imgName": "",
      "tooltipSrc": "",
    }
    ],
    "data": [
    {
      "Number": "10000",
      "price": "4.75",
      "manfName": "",
      "minOrderQty": "0.00",
      "maxOrderQty": "0",
      "additionalDetails": "<item>CUR:Rupees</item><item>code:one</item>",
    },
    {
      "Number": "10001",
      "price": "1.75",
      "manfName": "",
      "minOrderQty": "0.00",
      "maxOrderQty": "0",
      "additionalDetails": "",
    }
    ]
}   

我正在尝试将AdditionalDetails数据转换为json字符串。 我尝试将json字符串转换为XML内容,并将XML转换为json字符串,但extraDetails的数据未转换为json字符串。

这不是所陈述问题的一般解决方案,而是您问题的解决方案。

我将使用以下正则表达式:

<item>([0-9a-zA-Z]*):([0-9a-zA-Z]*)</item>

如果在全局模式下使用此表达式,则将匹配每个输入。 您可以使用java.util.regex.Pattern解析字符串。 (请参阅“组和捕获”部分以获取其中的值。)

然后,您可以构建com.google.gson.JsonArray并从Matcher中填充值。 然后可以将该数组替换为additionalDetails字段。

最终,您只需写出结果或执行任何您想使用的结果。

我已经使用X2JS库为您准备了一些FIDDLEhttp : //code.google.com/p/x2js/

INDEX.HTML:

<body>
    <pre id="pre_id">TEST</pre>
    <button id="go_button">GO</button>
</body>

脚本:

var x2js = new X2JS();

$("#go_button").click(function() {
    var form_data = {
      "docs": 70,
      "size": 250,
      "currentPageNo": 0,
      "recordStartFrom": 0,
      "columnHeader": [
        {
          "id": "0",
          "fieldName": "id",
          "imgName": "",
          "tooltipSrc": "",
        }
        ],
        "data": [
        {
          "Number": "10000",
          "price": "4.75",
          "manfName": "",
          "minOrderQty": "0.00",
          "maxOrderQty": "0",
          "additionalDetails": "<item>CUR:Rupees</item><item>code:one</item>",
        },
        {
          "Number": "10001",
          "price": "1.75",
          "manfName": "",
          "minOrderQty": "0.00",
          "maxOrderQty": "0",
          "additionalDetails": "",
        }
        ]
    };
    for (var i=0; i<form_data.data.length; i++) {
        console.log(x2js.xml_str2json(
            '<additionalDetails>'+
            form_data.data[i].additionalDetails+
            '</additionalDetails>'));
        form_data.data[i].additionalDetails = x2js.xml_str2json(
            '<additionalDetails>'+
            form_data.data[i].additionalDetails+
            '</additionalDetails>').additionalDetails;
    }
    $('#pre_id').html(JSON.stringify(form_data));
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM