gpt4 book ai didi

javascript - 使 JSON 中的数据成为 Dynamodb 中自己的属性?

转载 作者:行者123 更新时间:2023-12-02 23:44:49 27 4
gpt4 key购买 nike

每当我向 dynamodb 调用 post API 时,所有数据都会存储在一个“内容”属性中。有没有办法让 JSON 结构中的每个属性都有一个单独的属性?

例如,这里是我调用 API 的地方,数据的 JSON 结构位于 values 变量中。

export default (async function submitSite(values) {
console.log(values);
createSite(values);
})

function createSite(site) {
return API.post("sites", "/sites", {
body: site
});
}

这是 API 本身的代码:

export async function main(event, context) {
const data = JSON.parse(event.body);

console.log(data);
var site = "IE"+data.siteCounty+data.siteName;
var siteIdStripped = site.replace(/[aeiou]/g, '');
var siteId = siteIdStripped.replace(/ /g,'');
var siteIdFinal = siteId.toUpperCase();

const params = {
TableName: "sites",
Item: {
userId: event.requestContext.identity.cognitoIdentityId,
siteId: siteIdFinal,
content: data,
createdAt: Date.now()
}
};

当我上传时,它的结构为 siteId、userId、content(带有数据对象),创建于。

我希望它显示为 siteId、userId、siteName、siteAddress 等,最后 2 个是 json 中的索引之一

最佳答案

您将在此处显式创建 content 属性:content: data,。您需要像这样显式设置每个属性:

Item: {
userId: event.requestContext.identity.cognitoIdentityId,
siteId: siteIdFinal,
siteName: data.siteName,
siteAddress: data.siteAddress,
createdAt: Date.now()
}

或者,您可以使用 object spread operator 来简化它像这样:

Item: {
...data,
userId: event.requestContext.identity.cognitoIdentityId,
siteId: siteIdFinal,
createdAt: Date.now()
}

关于javascript - 使 JSON 中的数据成为 Dynamodb 中自己的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55900795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com