jolt转换规范

xuo3flqw  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(505)

关闭。这个问题需要细节或清晰。它目前不接受答案。
**想改进这个问题吗?**通过编辑这个帖子来添加细节并澄清问题。

23天前关门了。
改进这个问题
我有一个json输入,预期的输出如下。请帮助我生成规范。
输入json:

{  
    "Features": [    
      "fields": [
        {
          "name": "featureName"
        },
        {
          "name": "featureVersion"
        },
        {
          "name": "featureLevel"
        },
        {
          "name": "featureComponent"
        }
      ],
      "rows": [
        [
          "checkoutandopeninnative",
          "11R1",
          "1.0.0",
          "CheckoutAndOpenInNative",
          "1.0"
        ],
        [
          "ConfigurationMigration",
          "1.0",
          "1.0.1.68",
          "ConfigMigrationUtility",
          "1.0"
        ]
      ]
    ]    
}

预期输出json:

{
      "Features": [
        {
          "featureName": "checkoutandopeninnative",
          "featureVersion": "11R1",
          "featureLevel": "1.0.0",
          "featureComponent": "CheckoutAndOpenInNative"
        },
        {
          "featureName": "ConfigurationMigration",
          "featureVersion": "1.0",
          "featureLevel": "1.0.1.68",
          "featureComponent": "ConfigMigrationUtility"
        }
      ]
}

请帮助我的规格转换它在颠簸。我是个新手,很少有人试过不起作用。
谢谢,哈里

jckbn6z7

jckbn6z71#

此规范适用于您:

[
  {
    "operation": "shift",
    "spec": {
      "Features": {
        "rows": {
          "*": {
            "*": "Features[&1].@(3,fields[&].name)"
          }
        }
      }
    }
  }
]

笔记:
我想你的输入应该更像: "Features" : { ... } 不是 "Features": [] 正如@franta所指出的
checkout https://jolt-demo.appspot.com/ 在这里可以找到上面代码段中使用的运算符的示例
还可以查看shiftr文档,从中可以找到有关 * , & 以及 @ 运算符及其高级版本
为了在阅读文档时更容易理解:

hwazgwia

hwazgwia2#

说真的,别用谷歌搜索?
说真的,一系列的?试试这个验证器:codebeatify.org/jsonviewer
所以:json输入无效。验证器说:e2->error:parse error on line 1:parse error on line^应为'string'、'number'、'null'、'true'、'false'、'{'、'['、got'undefined'
结果是:
第3行出现分析错误:。。。
“字段”:[
{

uqzxnwby

uqzxnwby3#

--^
应为“eof”、“}”、“,”、“]”,但得到“:”
输入语法错误:加深结构时,连续方括号[[]错误;这些应该用花括号交错:[{[{[
请看输出示例,您自己声明:它遵循规则。

相关问题