JSON到JSON使用JOLT将数组更改为一个长字符串

r1zk6ea1  于 2023-03-13  发布在  其他
关注(0)|答案(3)|浏览(142)

假设我的JSON输入是:

{
  "rating": {
    "primary": {
      "value": [ "a", "B", 1]
    }
  }
}

我想要达到的是:

{
  "values": "a, B, 1"
}

我使用jolt JSON到JSON代码。

7cwmlq89

7cwmlq891#

这对于Jolt的常用转换是不可能的。您需要编写自定义转换。请查看文档部分了解如何编写自己的转换。

4nkexdtk

4nkexdtk2#

您可以尝试以下规范

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "value": "=concat(@(2,rating.primary.value[0]),',',@(2,rating.primary.value[1]),',',@(2,rating.primary.value[2]))"
    }
  },
  {
    "operation": "remove",
    "spec": {
      "rating": ""
    }
  }

]
pprl5pva

pprl5pva3#

目前,您可以使用modify转换规范沿着***join***函数来连接数组的组件,如下所示

[
  {
    "operation": "modify-overwrite-beta",
    "spec": {
      "*": {
        "*": {
          "value": "=join(', ',@(1,&))" 
        }
      }
    }
  },
  { // get rid of extra wrappers while renaming to "values"
    "operation": "shift",
    "spec": {
      "*": {
        "*": {
          "value": "&s" // the literal "value" is replicated by &
        }
      }
    }
  }
]

其中,@(1,&)复制(同时 * 覆盖 * 原始值)当前属性("value")的值,该值在当前级别的右侧声明,1后面的左括号表示此值。
http://jolt-demo.appspot.com/站点上的***演示***是

相关问题