gpt4 book ai didi

javascript - 使用输入字段的值更新 JSON 对象

转载 作者:行者123 更新时间:2023-11-30 17:34:56 24 4
gpt4 key购买 nike

我创建了一个表来显示和更新 JSON 对象。这是该表中的 2 个字段。我已将 JSON 路径放在名称字段中。

var obj = {
"subscription": {
"control-data": [
"app",
"sp"
],
"callback-url": "http://core.mbv:18080/man-notify",
"post-notification": true
},
"charging-schedulers": [
{
"charging-scheduler-name": "fifteen-days",
}
]
}
<input type="text" name="subscription%$#^control-data%$#^0" class="inputArea" value="app" size="3">

<input type="text" name="subscription%$#^callback-url" class="inputArea" value="http://core.mbv:18080/man-notify" size="36">

我保留了此路径以用于更新 JSON 对象。我尝试了自己的方式来更新它。但它需要数百个代码。有什么简单的方法可以更新该 JSON 对象。

最佳答案

更新

我注意到您不只是想获取相应的 JSON 值,而是想设置该值。我认为这会更好。 <强> new jsFiddle

obj = {
"subscription": {
"control-data": [
"app",
"sp"],
"callback-url": "http://core.mbv:18080/man-notify",
"post-notification": true
},
"charging-schedulers": [{
"charging-scheduler-name": "fifteen-days",
}]
}

function updateJSON() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var q = inputs[i].name.split("%$#^");
setValue(obj, q, inputs[i].value);
}

// This is the updated JSON obj
console.log(obj);
}

function setValue(obj, q, val) {
var sel = q.shift();
if (typeof obj[sel] === "object" && q.length > 0) {
setValue(obj[sel], q, val);
} else {
obj[sel] = val;
}
}

HTML

<input type="text" name="subscription%$#^control-data%$#^0" class="inputArea" value="app" size="3">
<input type="text" name="subscription%$#^callback-url" class="inputArea" value="http://core.mbv:18080/man-notify" size="36">
<button id="update" onclick="updateJSON()">Update</button>

你可以这样做。我假设您的输入名称对应于 JSON 对象中的结构。 jsFiddle

var obj = {
"subscription": {
"control-data": [
"app",
"sp"],
"callback-url": "http://core.mbv:18080/man-notify",
"post-notification": true
},
"charging-schedulers": [{
"charging-scheduler-name": "fifteen-days",
}]
}

var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var q= inputs[i].name.split("%$#^");
var value = getValue(obj, q);

// This is where you have the value for an input
console.log("value:", value);
}

function getValue(obj, q) {
var res = obj[q.shift()];
if (typeof res === "object" && q.length > 0) {
return getValue(res, q)
} else {
return res
}
}

关于javascript - 使用输入字段的值更新 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22243600/

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