Javascript 如何在JS中复制JSON对象
我有一个json对象,它包含一些数据,我正在对该对象进行搜索,当结果匹配时,我想将其保存到另一个对象。最好的方法是什么 我需要一些帮助将我想要的数据复制到新变量 这是我的Javascript 如何在JS中复制JSON对象,javascript,json,Javascript,Json,我有一个json对象,它包含一些数据,我正在对该对象进行搜索,当结果匹配时,我想将其保存到另一个对象。最好的方法是什么 我需要一些帮助将我想要的数据复制到新变量 这是我的 myjson = JSON.parse(jsonData); for(var x=0; x<myjson.ROWCOUNT;x++){ if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){ console.log(myjson.DATA.PARTNU
myjson = JSON.parse(jsonData);
for(var x=0; x<myjson.ROWCOUNT;x++){
if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
console.log(myjson.DATA.PARTNUMBER[x]);
}
}
myjson=JSON.parse(jsonData);
for(var x=0;xmyjson.DATA[x]是对包含匹配零件号的对象的引用。根据您想对其执行的操作,您可以将其添加到数组中以供将来访问。例如:
myCopies = [];
myjson = JSON.parse(jsonData);
for(var x=0; x<myjson.ROWCOUNT;x++){
if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
console.log(myjson.DATA.PARTNUMBER[x]);
myCopies.push(myjson.DATA[x]);
}
}
// myCopies now contains references to all objects matched by partnumber
myCopies=[];
myjson=JSON.parse(jsonData);
对于(var x=0;x来说,如果存在匹配的对象,简单的方法是硬拷贝所有属性
var myjson = JSON.parse(jsonData),
output = [],
matchedObj
;
for(var x=0; x<myjson.ROWCOUNT;x++){
if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
output.push({
ID: myjson.DATA.ID[x],
PARTNUMBER: myjson.DATA.PARTNUMBER[x],
DESCRIPTION: myjson.DATA.DESCRIPTION[x],
PRICE: myjson.DATA.PRICE[x]
});
}
}
console.log(output);
var myjson = JSON.parse(jsonData),
output = [],
matchedObj,
clone = function(data, i) {
var copy = {};
for(var attribute in data) {
if (data.hasOwnProperty(attribute )) {
copy[attribute] = data[attribute][i];
}
}
return copy;
}
;
for(var x=0; x<myjson.ROWCOUNT;x++){
if(myjson.DATA.PARTNUMBER[x].search(regex) != -1){
output.push(clone(myjson.DATA, x));
}
}
console.log(output);
var myjson=JSON.parse(jsonData),
输出=[],
匹配对象
;
对于(var x=0;x,您可以使用该帖子中的克隆函数复制对象
它复制的对象不取决于对象的结构。您的意思是要过滤,而不是复制?您可以将其插入DOM中的属性(例如#ID)然后根据需要检索。我认为我的答案符合您的需要。我有一个resultOBJ变量为空,因此当它匹配时,我想将数据添加到resultOBJ变量。是否只有一个匹配或多个匹配?Ben,它可能有多个匹配。
function clone(obj) {
if (null == obj || "object" != typeof obj) return obj;
var copy = obj.constructor();
for (var attr in obj) {
if (obj.hasOwnProperty(attr)) copy[attr] = obj[attr];
}
return copy;
}