将JSON属性细分为对象数组

时间:2018-05-10 17:00:55

标签: json jolt

我正在尝试将一个简单的JSon对象转换为具有键和值的对象数组,但我不确定如何到达那里。

我尝试了很多方法,但最接近的方法是创建一个包含两个数组的对象,而不是一个包含多个对象的数组,每个对象都有两个属性:

编辑:我正在尝试编写一个规范,它将使用任何对象,而不是此特定对象。我不知道传入的对象将是什么,除了它将具有简单的属性(值将不是数组或其他对象)。

示例输入:

{
  "property": "someValue",
  "propertyName" : "anotherValue"
}

预期产出:

{
    "split_attributes": [
        {
            "key" : "property",
            "value": "someValue"
        },
        {
            "key" : "propertyName",
            "value" : "anotherValue"
        }
    ]
}

我的规格到目前为止:

{ 
  "operation": "shift",
    "spec": {
       "*": {
        "$": "split_attributes[#0].key",
        "@": "split_attributes[#0].value"
      }
    }
  }

可生产

{
  "split_attributes" : [ 
     {
      "key" : [ "property", "propertyName" ], 
      "value" : [ "someValue", "anotherValue"]
     }
  ]
}

1 个答案:

答案 0 :(得分:1)

解决方案

我非常接近,在查看测试后,解决方案很明显(它与其中一个测试相同)

{ 
  "operation": "shift",
    "spec": {
       "*": {
        "$": "split_attributes[#2].key",
        "@": "split_attributes[#2].value"
      }
    }
  }

从看起来,我正在创建一个数组,但我正在寻找新数组的索引的错误级别。我在整个#级别上仍然模糊不清(例如,在“树”(以及哪个对象)#0,#1和#2实际上看的位置)。