我正在尝试根据DynamoDB返回的数据创建JSON。我对如何创建它很困惑。
目前,我将数据放入数组中并在下面填充JSON是我的代码。
var res = {};
dynamodb.scan(params).promise().then(function (data) {
var ingred = data.Items[0].ingredients;
res = {
[ingred]: {}
};
ingred.max = Math.max(...data.Items.map(({max}) => parseFloat(max))) + "";
ingred.min = Math.min(...data.Items.map(({min}) => parseFloat(min))) + "";
console.log(JSON.stringify(res, null, 4));
})
这次我运行时,我得到如下输出。
{
"a": {}
}
{
"b": {}
}
{
"c": {}
}
当我将代码更改为以下
时var res = {};
dynamodb.scan(params).promise().then(function (data) {
var ingred = data.Items[0].ingredients;
console.log(ingred);
ingred = {};
ingred.max = Math.max(...data.Items.map(({ max }) => parseFloat(max))) + "";
ingred.min = Math.min(...data.Items.map(({ min }) => parseFloat(min))) + "";
console.log(JSON.stringify(ingred, null, 4));
})
我得到的输出如下
a
{
"max": "14",
"min": "8.5"
}
b
{
"max": "1.98",
"min": "0.37"
}
c
{
"max": "155",
"min": "6"
}
我正在努力实现以下结果。
{
"a": {
"max": "14",
"min": "8.5"
},
"b": {
"max": "1.98",
"min": "0.37"
},
"c": {
"max": "155",
"min": "6"
}
}
请告诉我如何实现这一目标。
由于
答案 0 :(得分:1)
尝试这样做:
var res = {};
dynamodb.scan(params).promise().then(function (data) {
var ingred = data.Items[0].ingredients;
res[ingred] = {};
res[ingred].max = Math.max(...data.Items.map(({ max }) => parseFloat(max))) + "";
res[ingred].min = Math.min(...data.Items.map(({ min }) => parseFloat(min))) + "";
console.log(JSON.stringify(res, null, 4));
})
答案 1 :(得分:1)
将max
和min
添加到res[ingred]
中的对象。
var res = {};
dynamodb.scan(params).promise().then(function (data) {
var ingred = data.Items[0].ingredients;
res[ingred] = {};
res[ingred].max = Math.max(...data.Items.map(({ max }) => parseFloat(max))) + "";
res[ingred].min = Math.min(...data.Items.map(({ min }) => parseFloat(min))) + "";
console.log(JSON.stringify(res, null, 4));
})
答案 2 :(得分:1)
您只需在ingred
res
即可
var res = {};
dynamodb.scan(params).promise().then(function (data) {
var ingred = data.Items[0].ingredients;
res[ ingred ] = {};
res[ ingred ].max = Math.max(...data.Items.map(({ max }) => parseFloat(max))) + "";
res[ ingred ].min = Math.min(...data.Items.map(({ min }) => parseFloat(min))) + "";
console.log(JSON.stringify(res, null, 4));
})
答案 3 :(得分:0)
只需将a和b存储到对象中并将其存储到全局对象中:
const result = {};
dynamodb.scan(params).promise().then(function (data){
const ingred = data.Items[0].ingredients;
result[ingred] = {
max: Math.max(...data.Items.map(({ max }) => parseFloat(max))),
min: Math.min(...data.Items.map(({ min }) => parseFloat(min))),
};
})