如何通过JSONata提取选择性密钥?
我只想从下面的对象中提取产品名称、产品ID和SKU如何通过JSONata提取选择性密钥?,json,jsonata,Json,Jsonata,我只想从下面的对象中提取产品名称、产品ID和SKU { "Product Name": "Bowler Hat", "ProductID": 858383, "SKU": "0406654608", "Description": { "Colour": "Purple", "Width": 300, "Height": 200, "Depth": 21
{
"Product Name": "Bowler Hat",
"ProductID": 858383,
"SKU": "0406654608",
"Description": {
"Colour": "Purple",
"Width": 300,
"Height": 200,
"Depth": 210,
"Weight": 0.75
},
"Price": 34.45,
"Quantity": 2
}
预期结果:
{
"Product Name": "Bowler Hat",
"ProductID": 858383,
"SKU": "0406654608"
}
尝试过的解决方案:
{ "Product Name": `Product Name`, "ProductID": ProductID, "SKU": SKU }
$sift(function($v, $k) {$k ~> /^Product Name|ProductID|SKU/})
需要一个更简单的方法来做。比如:
{ `Product Name`, ProductID, SKU}
显而易见的选择是:
{ "Product Name": `Product Name`, "ProductID": ProductID, "SKU": SKU }
或者,如果位置始终相同,则缩短一点:
{ "Product Name": *[0], "ProductID": *[1], "SKU": SKU }
你试过什么或找过什么吗?我已经试了一段时间,但没有成功。只要知道,我很接近。我可以轻松创建一个对象并映射相关节点。或者我可以用筛子。但是我想知道是否有更简单的方法来解决这个问题。你能包括你的尝试吗?$sift(函数($v,$k){$k~>/^Product Name | ProductID | SKU/})你了解JavaScript中对象是如何工作的吗?这是一个很好的起点。对于包含空格的属性(例如产品名称),您也可以使用backtics来避免**。东西--{“产品名称”:“产品名称”,“产品ID”:产品ID,“SKU”:SKU}谢谢@Slai。然而,我已经知道这种方法。我将用这些细节更新问题描述。