简体   繁体   English

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

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

Below is my json string and i want to convert data of additionalDetails into json string, but i am not able to success. 以下是我的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": "",
    }
    ]
}   

I am trying to convert additionalDetails data into json string. 我正在尝试将AdditionalDetails数据转换为json字符串。 I try to convert json string to XML content and XML to json string but data of additionalDetails is not converted into json string. 我尝试将json字符串转换为XML内容,并将XML转换为json字符串,但extraDetails的数据未转换为json字符串。

This is not a general solution to the stated problem, but a solution to your problem. 这不是所陈述问题的一般解决方案,而是您问题的解决方案。

I would use regular expressions along the lines of: 我将使用以下正则表达式:

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

If you use this expression in global mode you will match each input. 如果在全局模式下使用此表达式,则将匹配每个输入。 You can parse the string using java.util.regex.Pattern . 您可以使用java.util.regex.Pattern解析字符串。 (See the section on "Groups and capturing" to get the values within.) (请参阅“组和捕获”部分以获取其中的值。)

You can then build up a com.google.gson.JsonArray and populate the values from the Matcher. 然后,您可以构建com.google.gson.JsonArray并从Matcher中填充值。 This array can then be replaced with the additionalDetails field. 然后可以将该数组替换为additionalDetails字段。

Finally you just write out the result or do whatever you wanted to do with it. 最终,您只需写出结果或执行任何您想使用的结果。

I've prepared some FIDDLE for You using X2JS library: http://code.google.com/p/x2js/ 我已经使用X2JS库为您准备了一些FIDDLEhttp : //code.google.com/p/x2js/

INDEX.HTML: INDEX.HTML:

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

SCRIPT: 脚本:

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