我有以下对象
{
"name": "Papanito",
"fields": [
{
"name": "Name1",
"value": "Value1",
"type": 0,
"linkedId": null
},
{
"name": "Name2",
"value": "Value2",
"type": 0,
"linkedId": null
},
{
"name": "Name3",
"value": "Value3",
"type": 0,
"linkedId": null
},
{
"name": "Name4",
"value": "Value3",
"type": 0,
"linkedId": null
}
],
}
我想在这个转换
{
"name": "Papanito",
"fields": [
"Name1": "Value1",
"Name2": "Value2",
"Name3": "Value3",
"Name4": "Value4",
],
}
我尝试了几件事,但我还没有弄清楚如何做到这一点。
这将更新
fields
数组。首先,对于每个元素(使用map()
),使用key
键中的值创建一个name
键。然后从元素中删除type
、linkedId
和键。name
我们现在在数组的每个元素中都留下了一个key
和一个键,这正是需要将值作为键与值相关联的地方。value
fields
from_entries
key
value
对问题中给出的数据进行测试(删除了尾随逗号),这会生成以下 JSON:
请注意,您的预期输出是无效的 JSON,因为数组不能有键。因此,
fields
上面输出中的值是一个对象,而不是一个数组。您是否想保留
fields
为数组,您可以重新排列操作:对于给定的数据(如上所述更正),这将生成与以下文档等效的内容:
这样做的好处是具有相同原始
name
值的两个元素不会在结果中相互覆盖。从概念上讲,上面删除了我们不再需要的数据。以下变体提取了我们想要的数据。
这会从上面生成最后一个结果:
我们可以通过合并列表中的条目来获得第一个结果(
fields
作为单个对象):