【发布时间】:2022-06-15 23:45:48
【问题描述】:
服务器向我发送 JSON 格式的数据来描述产品。产品由属性和嵌套的属性数组组成,最多 4 级深度。在前端,用户可以更新深层嵌套值。我是否需要跟踪路径,然后为更新的 POST 调用重建整个 JSON 对象?还是有更优雅的方法来做到这一点?还是后端服务的设计不好?
JSON 格式的数据
{
"productId": 10,
"features": [
{
"id": 45,
"name": "Customization",
"productOptions": [
{
"id": 1,
"color": ["red", "green"],
},
{
"id": 2,
"slogans": [
{"id": 32, "name":"Thank You"},
{"id": 33, "name":"Thanks a lot"},
],
}
]
}
]
}
输入以编辑标语
<input data-id="32" type="text" name="slogan" />
编辑 JSON 以发送回服务器
const update = {"id": 32, "name":"Thank You so much!"}
// update slogan array
solgansUpdateIndex = slogans.findIndex(obj => obj.id == 32)
slogans[solgansUpdateIndex] = update
...
// update whole object for the updating POST call
{...data, //updateTree}
【问题讨论】:
-
请注意 JSON 是一个字符串。如果数据在 JS 中,它只是 JS 对象/数组/等。
-
@evolutionxbox 你是什么意思?
-
这没什么大不了的,但很高兴知道。
const data = { ...不是 JSON。 benalman.com/news/2010/03/theres-no-such-thing-as-a-json -
如果您尝试更新存储在数据库中的数据,那么必须由后端处理,而不是前端更改 json。后端必须提供一个端点来更新每个实体类
标签: javascript reactjs json api