骡子4-如何删除输出中的特殊字符



输入:

[{"有效载荷":"{\n"数量":6.00,\n"项目密钥":55555;deliveryNote":";,\n〃;deliveryDate":"2022-10-22T00:00.000Z";,\n〃;shoppingCartId":"2〃;,\n〃;poNumber":"iisdown";,\n〃;customerKey":"44444〃;,\n〃;id":"9018A00000007OGrQAM";\n} ";}]

我应该如何编写dataweave表达式以获得以下输出:

{"id":"9018A00000007OGrQAM";,"customerKey":"44444〃;,"deliveryDate":"2022-10-22T00:00.000Z";,"poNumber":"testingpo";,"shoppingCartId":"2〃;,"deliveryNote":"测试";,"行":[{"itemKey":"55555〃;,"数量":5.}]}

有效负载中没有特殊字符。输入具有作为字符串值的JSON。JSON处理器需要对JSON使用的字符串中的字符进行转义,以避免生成无效的JSON。因此,引号用反斜杠字符转义,新行用n表示,这在许多语言中是常见的。如果您想解析该值并恢复JSON值,可以使用DataWeave的read((函数。

请注意,它将为您的输入失败,因为它包含无效的JSON,即使是转义的。如果无法修复输入,则不能使用read((,并且需要使用一些字符串函数(如replace(((手动解析。

示例:

%dw 2.0
output application/json
---
read(payload[0].payload, "application/json")

我不知道你希望如何获得输出的结构,因为你没有澄清它,问题只是关于"特殊字符"。然而,输入似乎并不包含获得预期输出的所有数据。

最新更新