簡體   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