如何在JS中复制JSON对象
How to copy a JSON object in JS
我有一个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.PARTNUMBER[x]);
}
}
如果我有显示部件号的console.log,我如何使它复制X行的所有内容?
myjson有4列(ID、PARTNUMBER、DESCRIPTION、PRICE),但我只搜索部件号。我需要将所有内容复制到新的json对象中。
谢谢。
您可以使用该帖子中的克隆函数复制对象如何正确克隆JavaScript对象?
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;
}
它不依赖于对象的结构来复制对象。
myjson.DATA[x]是对包含匹配PARTNUMBER的对象的引用。根据您想对它做什么,您可以将它添加到一个数组中以供将来访问。例如:
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
如果有匹配的对象,简单的方法是硬拷贝所有属性
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);
相关文章:
- 如何在JS中复制JSON对象
- $.get-json数组复制
- 复制对象,然后更新 JSON 对象中的值
- 如何在 javascript 中复制 JSON 对象数组
- 尝试复制 json 数据 js 时出现类型错误
- 复制和粘贴带有转义引号的字符串化对象时的 JSON.parse 异常
- 如何复制 XMLHttpRequest for JSON.
- 如何将现有 JSON 对象数组的某些对象复制到新的 JSON 数组
- 保护原始JSON数据不被复制
- 基于密钥的JSON到JSON复制
- 正在复制/重命名JSON对象数组
- JSON对象复制自己
- 将AJAX JSON对象复制到现有的object中
- 如何添加json没有复制(包括CasperJS代码)
- 如何处理async getJSON来复制json对象
- 用javascript复制自定义json对象到剪贴板
- 我如何从模板节点复制并填充json数据,并用javascript将它们附加到文档中
- 重新加载jQuery AJAX会复制JSON输出结果
- 如何在javascript中复制JSON
- 复制JSON数组的特定元素到另一个