AWS步骤功能:如何使用jsonpath将键值对附加到输入json中?

izkcnapc  于 2023-05-19  发布在  其他
关注(0)|答案(1)|浏览(135)

根据AWS Step Functions的doc,您可以在Parameters转换中使用JSON路径语法来创建作为输入传递的键值对集合。给定以下输入:

{
  "comment": "Example for Parameters.",
  "product": {
    "details": {
       "color": "blue",
       "size": "small",
       "material": "cotton"
    },
    "availability": "in stock",
    "sku": "2317",
    "cost": "$23"
  }
}

我想把它转换成这样:

{
  "foo": "My new value",
  "comment": "Example for Parameters.",
  "product": {
    "details": {
       "color": "blue",
       "size": "small",
       "material": "cotton"
    },
    "availability": "in stock",
    "sku": "2317",
    "cost": "$23"
  }
}

一种方法可以做到这一点:

{
  "foo": "My new value",
  "comment.$": "$.comment",
  "product.$": "$.product"      
}

有没有一种方法可以通过一种“apppend操作”获得相同的结果,而不显式引用JSON中根本没有改变的其他部分(即comment.$product.$)?

xxls0lw8

xxls0lw81#

GIVENPass状态:

{
  "Comment": "Append a new key-value pair",
  "StartAt": "AppendFoo",
  "States": {
    "AppendFoo": {
      "Type": "Pass",
      "Result": "My new value",
      "ResultPath": "$.foo",
      "End": true
    }
  }
}

OP输入通过时,
然后产生预期的输出。在ResultPath处插入Result。请注意,Result必须是文字值(不允许.$替换),但不一定是字符串。参见文档中的示例。

相关问题