Cha*_*ish 23 java xslt json jackson
我有一个场景.
所需的输入和输出是JSON.
// Input
{
"OldObject": {
"Time": 1351160457922,
"Name": "OName",
"quantity": 100,
"price": 10
}
}
// Output
{
"NewObject": {
"Time": 1351160457922,
"Title": "OName",
"quantity": 100
}
}
Run Code Online (Sandbox Code Playgroud)
我需要一些转换代码或最好是xslt类型语言来将json从一种格式转换为另一种格式.这个变压器也需要快速,因为转换将在运行中完成.
编辑
我没有收到INPUT对象的定义,它可能在运行时更改.但如果需要,我可以使用OUTPUT对象的类.我试图以json - > xml - > xslt - > xml - > json的方式执行此操作,但此时每秒接收大约1000个对象,此过程可能会产生开销.
我也不能使用JavaScript,因为myApp是基于Windows的简单java应用程序,使用JavaScript可能会导致开销.
Mil*_*o S 20
试试JOLT.它是用Java编写的JSON to JSON转换库.它是在一个项目中创建的,该项目将大量JSON从ElasticSearch"后端"转换为前端api.
对于您在问题中列出的JSON转换,Jolt"shift"规范将是:
// Jolt "shift" spec
{
"OldObject": {
"Time": "NewObject.Time",
"Name": "NewObject.Title", // if the input has "OldObject.Name", copy it's value
// to "NewObject.Title
"quantity": "NewObject.quantity"
}
}
Run Code Online (Sandbox Code Playgroud)
KAR*_*ván 12
您可以使用JSON补丁进行此转换.
var transformations = [
{ move: '/OldObject', to: '/NewObject' },
{ remove: '/NewObject/price' },
{ move: '/NewObject/Name', to: '/NewObject/Title' }
];
var oldObject = { "OldObject": { "Time": 1351160457922, "Name": "OName", "quantity": 100, "price": 10 } };
jsonpatch.apply(oldObject, transformations);
Run Code Online (Sandbox Code Playgroud)
我没有测试这个,但应该这样工作.
归档时间: |
|
查看次数: |
30309 次 |
最近记录: |