JSON 到 JSON 转换器

新手上路,请多包涵

我有一个场景。

所需的输入和输出是 JSON。

 // Input
{
  "OldObject": {
    "Time": 1351160457922,
    "Name": "OName",
    "quantity": 100,
    "price": 10
  }
}

// Output
{
  "NewObject": {
    "Time": 1351160457922,
    "Title": "OName",
    "quantity": 100
  }
}

我需要一些转换代码或最好是 xslt 类型的语言来将 json 从一种格式转换为另一种格式。该转换器还需要快速,因为转换将在运行中完成。

编辑

我没有接收到的 INPUT 对象的定义,它可能会在运行时更改。但如果需要,我可以将类用于 OUTPUT 对象。我尝试以 json -> xml -> xslt -> xml -> json 的形式执行此操作,但此时每秒大约接收 1000 个对象,此过程可能会产生开销。

我也不能使用 JavaScript,因为 myApp 是简单 的基于 Windows 的 Java 应用程序,使用 JavaScript 可能会导致开销。

原文由 Chaturvedi Dewashish 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 404
2 个回答

试试 JOLT 。它是一个用 Java 编写的 JSON 到 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"
    }
}

原文由 Milo S 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用 JSON patch 执行此转换。

jsonpatch-js 示例:

 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);

我没有测试所提供的,但应该那样工作。

JSON 补丁有 Java 实现

原文由 KARASZI István 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题