我是初学者,我正在尝试创建以下JSON来自HTML输入文本的数据提取。如何创建和访问以下JSON?
{
Brazilians**{
John**{
old: 18
}
Jones**{
old: 20
}
}
Canadians**{
Friedman**{
old: 22
}
James**{
old: 35
}
}
}
注意:**表示它必须是动态密钥。
我的HTML代码:
<input type="text" id="nacionality">
<input type="text" id="name">
<input type="text" id="old">
我尝试在javascript中开发的结构:
obj[nationality] = name[{old : oldValue}];
alert(obj["Brazilians"]["John"].old);
答案 0 :(得分:4)
这样的东西?
var obj = {};
obj[document.getElementById('nationality').value] = {};
obj[document.getElementById('nationality').value][document.getElementById('name').value] = {
old: document.getElementById('old').value
};
console.log(obj);
&#13;
<input type="text" id="nationality" value="Brazilian" />
<input type="text" id="name" value="John" />
<input type="text" id="old" value="18" />
&#13;
答案 1 :(得分:2)
您应该使用详细信息创建新对象。您可以使用Immediately-invoked function expression创建此对象。
obj[nationality]=(function(){
var obj1={};
obj1[name]={
old:parseInt(old)
};
return obj1;
})();
var obj={
Brazilians:{
John:{
old: 18
}
,
Jones:{
old: 20
}
}
,
Canadians:{
Friedman:{
old: 22
}
,
James:{
old: 35
}
}
}
function add(){
var nationality=document.getElementById('nacionality').value;
var name=document.getElementById('name').value;
var old=document.getElementById('old').value;
obj[nationality]=(function(){
var obj1={};
obj1[name]={
old:parseInt(old)
};
return obj1;
})();
console.log(obj);
}
&#13;
<input type="text" id="nacionality">
<input type="text" id="name">
<input type="text" id="old">
<button onclick="add()">Add</button>
&#13;
答案 2 :(得分:1)
你的JSON代码错了,应该是这样的:
{
"Brazilians":[
John:{ old: 18 },
Jones:{ old: 20 }
],
"Canadians":[
Friedman:{ old: 22 },
James:{ old: 35 }
]
}
答案 3 :(得分:-1)
在json中制作动力道具你[prop]
function dynmObj (a, b){
var json ={
[a] : b
}
return json;
}