Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过JSONata提取选择性密钥?_Json_Jsonata - Fatal编程技术网

如何通过JSONata提取选择性密钥?

如何通过JSONata提取选择性密钥?,json,jsonata,Json,Jsonata,我只想从下面的对象中提取产品名称、产品ID和SKU { "Product Name": "Bowler Hat", "ProductID": 858383, "SKU": "0406654608", "Description": { "Colour": "Purple", "Width": 300, "Height": 200, "Depth": 21

我只想从下面的对象中提取产品名称、产品ID和SKU

 {
        "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。然而,我已经知道这种方法。我将用这些细节更新问题描述。