将具有属性的空手道对象转换为地图
Convert Karate object with properties into map
如何使用 karate.map
来转换这个:
{
"Test1": 10,
"Test2": 5
}
对此:
[
{
"key": "Test1",
"amount": 10
},
{
"key": "Test2",
"amount": 5
}
]
我尝试了以下方法,但没有用。
* def objectAsMap = karate.map(objects, ([token, amount]) => ({ token, amount }))
给你:
* def response = { a: 1, b: 2 }
* def pairs = []
* karate.forEach(response, (k, v) => pairs.push({ key: k, value: v}))
* match pairs == [{ key: 'a', value: 1 }, { key: 'b', value: 2 }]
请注意,JS 数组操作有效,因此您甚至可以这样做:
* def response = { a: 1, b: 2 }
* def pairs = Object.entries(response).map(x => ({ key: x[0], value: x[1]}))
* match pairs == [{ key: 'a', value: 1 }, { key: 'b', value: 2 }]
如何使用 karate.map
来转换这个:
{
"Test1": 10,
"Test2": 5
}
对此:
[
{
"key": "Test1",
"amount": 10
},
{
"key": "Test2",
"amount": 5
}
]
我尝试了以下方法,但没有用。
* def objectAsMap = karate.map(objects, ([token, amount]) => ({ token, amount }))
给你:
* def response = { a: 1, b: 2 }
* def pairs = []
* karate.forEach(response, (k, v) => pairs.push({ key: k, value: v}))
* match pairs == [{ key: 'a', value: 1 }, { key: 'b', value: 2 }]
请注意,JS 数组操作有效,因此您甚至可以这样做:
* def response = { a: 1, b: 2 }
* def pairs = Object.entries(response).map(x => ({ key: x[0], value: x[1]}))
* match pairs == [{ key: 'a', value: 1 }, { key: 'b', value: 2 }]