【发布时间】:2017-12-02 16:12:49
【问题描述】:
我在我的 ESB 中获得 JSON 数组响应,但我需要使用脚本中介将其转换为 XML。 JSON 数组响应的长度是动态的。我需要遍历整个 JSON 数组长度并将其转换为 xml。请帮忙。
以下是我现在得到的 JSON 数组响应,但长度不固定。
{
"Results": [
{
"Id": 215766,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP COLOR LASERJET CP4520 SERIES",
"SerialNumber": "JPDXG57J7Y",
"FirmwareVersion": "07.160.6",
"FirmwareDateCode": "2014-01-27T00:00:00Z",
"LastContactTime": "2017-06-19T04:03:04Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "3ff42b50-9d86-cf53-e053-0100007ffbe3",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "GenuineHP",
"HasGenuineHPCartridges": true
},
{
"Id": 215757,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP COLOR LASERJET FLOW MFP M880",
"SerialNumber": "CNCXG566XK",
"FirmwareVersion": "2308209_000573",
"FirmwareDateCode": "2016-08-20T00:00:00Z",
"LastContactTime": "2017-06-19T04:02:22Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "3bf42b50-c03b-863a-e053-0100007fad51",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "CartridgeInBadState",
"HasGenuineHPCartridges": true
},
{
"Id": 215763,
"HostName": null,
"IPAddress": "xxx.xxx.xx.xxx",
"ModelName": "HP COLOR LASERJET FLOW MFP M880",
"SerialNumber": "CNDVGCS0LP",
"FirmwareVersion": "2308209_000573",
"FirmwareDateCode": "2016-08-20T00:00:00Z",
"LastContactTime": "2017-06-19T04:03:11Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "3cf42b50-d977-d237-e053-0100007fae25",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "GenuineHP",
"HasGenuineHPCartridges": true
},
{
"Id": 215762,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP LASERJET M4345 MFP",
"SerialNumber": "CNCJ94000H",
"FirmwareVersion": "48.306.1",
"FirmwareDateCode": "2014-07-22T00:00:00Z",
"LastContactTime": "2017-06-19T04:05:08Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "3bf42b50-c13b-863a-e053-0100007fad51",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "GenuineHP",
"HasGenuineHPCartridges": true
},
{
"Id": 215759,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP LASERJET M4345 MFP",
"SerialNumber": "CNCJ98L01X",
"FirmwareVersion": "48.306.1",
"FirmwareDateCode": "2014-07-22T00:00:00Z",
"LastContactTime": "2017-06-19T04:04:07Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "3df42b50-a14a-a05b-e053-0100007f3f94",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "NotSupported",
"HasGenuineHPCartridges": true
},
{
"Id": 224984,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP LASERJET M506",
"SerialNumber": "PHCJQ00233",
"FirmwareVersion": "2308209_000567",
"FirmwareDateCode": "2016-08-20T00:00:00Z",
"LastContactTime": "2017-06-16T04:09:27Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "7aa4ca50-6303-7404-e053-0100007f7e65",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "GenuineHP",
"HasGenuineHPCartridges": true
},
{
"Id": 215758,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP LASERJET M9040 MFP",
"SerialNumber": "JPCXDDSBQH",
"FirmwareVersion": "51.320.4",
"FirmwareDateCode": "2017-01-24T00:00:00Z",
"LastContactTime": "2017-06-19T04:02:03Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "3cf42b50-d877-d237-e053-0100007fae25",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "GenuineHP",
"HasGenuineHPCartridges": true
},
{
"Id": 215761,
"HostName": null,
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP LASERJET P4515",
"SerialNumber": "CNFY193829",
"FirmwareVersion": "04.049.3",
"FirmwareDateCode": "2009-09-25T00:00:00Z",
"LastContactTime": "2017-06-14T03:55:39Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "3ff42b50-9b86-cf53-e053-0100007ffbe3",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "GenuineHP",
"HasGenuineHPCartridges": true
},
{
"Id": 240970,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP MFP S975DN",
"SerialNumber": "5100008X00",
"FirmwareVersion": "H1.07.t1.00",
"FirmwareDateCode": null,
"LastContactTime": "2017-06-14T05:58:08Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": "xxx",
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "6c8b4351-1f83-b873-e053-0100007ffdc5",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "NotAttempted",
"HasGenuineHPCartridges": true
},
{
"Id": 224986,
"HostName": "xxx.xxx.xx.xxx",
"IPAddress": "xx.xx.xxx.xxx",
"ModelName": "HP PAGEWIDE PRO MFP 777HC",
"SerialNumber": "MY73H5E00H",
"FirmwareVersion": "LIMOFWMP2A006.1720B.00",
"FirmwareDateCode": "2017-05-11T00:00:00Z",
"LastContactTime": "2017-06-14T03:55:40Z",
"TemplateSettings": {
"ConsumablesStrategy": "Unknown",
"LongLifeConsumablesStrategy": "Unknown"
},
"MacAddress": null,
"DeviceIntrinsicAttributeId": "SerialNumber",
"ManufacturerName": "HP",
"DeviceModelSupportTypeId": "Dat",
"IsAmvDevice": false,
"Guid": "7aa4ca50-6503-7404-e053-0100007f7e65",
"MskuAttributeState": "Absent",
"ActivationStatus": "Active",
"GenuineHPCartridgeStatus": "NotAttempted",
"HasGenuineHPCartridges": true
}
]
}
【问题讨论】:
-
您可以使用 Jackson Plugin 实现此目的,非常简单快捷
-
我在 ESB WSO2 中进行转换,所以我将不得不使用脚本中介。
-
好吧...我只是不知道
-
最好使用XSLT...1-从json转换为xml,2-创建xslt转换并在esb中使用。
-
因为,我有 json 数组,所以我将不得不使用脚本中介。我已经编写了脚本中介代码,但现在我收到错误,因为“脚本引擎返回执行内联 js 脚本的错误函数调解 {org.apache.synapse.mediators.bsf.ScriptMediator} com.sun.phobos.script.util.ExtendedScriptException: org.mozilla.javascript.EcmaError: TypeError: Cannot read property "length" from undefined (
#4) 在 的第 4 行,com.sun.phobos.script.javascript.RhinoCompiledScript.eval(RhinoCompiledScript.java:68)"......你有什么想法吗?跨度>
标签: json xml wso2 transform esb