我有一个包含许多JSON对象的数组。
我想将新行推入一个JSON对象,但JavaScript将行推送到数组中的所有JSON,如何修复它,还是可以使用其他东西而不是数组?
我的代码是这样的:
for (var i = 0; i < 5; i++) {
jsonArray.push(jsonPassengerList);
}
jsonArray[0].push({
"ID":0,
"Name":"aa",
"LastName":"",
"Nationality":"",
"QuoteType":"",
"Title":"",
"Age":0
});
如何修复此问题或如何处理多个JSON对象?
答案 0 :(得分:0)
我想,这就是你的意思。如果你有这样一个对象:
var obj1= {
"ID":0,
"Name":"aa",
"LastName":"",
"Nationality":"",
"QuoteType":"",
"Title":"",
"Age":0
}
要将此对象添加到数组,您可以执行以下操作:
var arr = [];
arr.push(obj1);
答案 1 :(得分:0)
你对术语有点困惑。那些是常规的旧javascript对象。 Google JSON获取更多相关信息。
从您的代码片段看,您将相同的对象(jsonPassengerList)添加到您的数组五次,而不是一次添加五个不同的对象。因此,它不会更新所有五个对象,它只更新一个。你引用了五次。
答案 2 :(得分:0)
问题是存储在jsonArray
对象中的每个对象实际上都是相同的jsonPassengerList
对象。
如果需要独立列表,则必须为jsonArray
中存储的每个列表使用新的数组实例。顺便说一下,jsonArray
非常令人困惑,我宁愿调用变量passengerListStore
或类似的东西。
var passengerListStore = [];
//initialize empty lists
for (var i = 0; i < 5; i++) {
passengerListStore.push([]);
}
//push a new passenger into the first passenger list
passengerListStore[0].push({
"ID":0,
"Name":"aa",
"LastName":"",
"Nationality":"",
"QuoteType":"",
"Title":"",
"Age":0
});
答案 3 :(得分:0)
感谢您使用多维json解决问题的答案
var jsonAll="[";
for (var i = 0; i < 5; i++) {
jsonAll+=""+JSON.stringify(jsonPassengerList)+",";
if(...)
{
jsonAll=jsonAll.substring(0, jsonAll.length - 2);
jsonAll+=",{\"ID\": 0, \"Name\": \"\", \"LastName\": \"\", \"Title\": \"\", \"Nationality\": \"\", \"Age\": 0, \"QuoteType\": \"\"}";
jsonAll+="],";
}
}
jsonAll=jsonAll.substring(0, jsonAll.length - 1);
jsonAll+="]";
var JsonData=JSON.parse(jsonAll);