创建一个新的javascript对象,该对象仅包含来自另一个现有对象的选定属性

创建一个新的javascript对象,该对象仅包含来自另一个现有对象的选定属性,javascript,jquery,javascript-objects,Javascript,Jquery,Javascript Objects,我有一个javascript对象,我想用它的一些属性创建一个新对象 如何从下面的对象创建仅具有属性a和c的新对象 json = { "test": [ { "a": "val_a1", "b": "val_b1", "c": "val_c1", "d": "val_d1" }, { "a": "val_a2",

我有一个
javascript对象
,我想用它的一些属性创建一个新对象

如何从下面的对象创建仅具有属性
a
c
的新对象

json = {
  "test": [
        {
            "a": "val_a1",
            "b": "val_b1",
            "c": "val_c1",
            "d": "val_d1"
        },
        {
            "a": "val_a2",
            "b": "val_b2",
            "c": "val_c2",
            "d": "val_d2"
        },
        {
            "a": "val_a3",
            "b": "val_b3",
            "c": "val_c3",
            "d": "val_d3"
        }
    ]
}
我想要一个包含以下数据的新对象:

smaller_json = {
    "test": [
        {
            "c": "val_a1",
            "a": "val_c1"
        },
        {
            "c": "val_a2",
            "a": "val_c2"
        },
        {
            "c": "val_a3",
            "a": "val_c3"
        }
    ]
};

代码:


解码,移除,再次编码。在JSON上执行字符串操作看起来不太明智。每当您有大量JavaScript代码,并且想要测试您是否具有正确的语法…JSON格式时,您可以使用www.jsonlint.com。这是一个很好的工具…如果你以前没有见过它,请查看它。。。。
var json = {
  "test": [
        {
            "a": "val_a1",
            "b": "val_b1",
            "c": "val_c1",
            "d": "val_d1"
        },
        {
            "a": "val_a2",
            "b": "val_b2",
            "c": "val_c2",
            "d": "val_d2"
        },
        {
            "a": "val_a3",
            "b": "val_b3",
            "c": "val_c3",
            "d": "val_d3"
        }
    ]
};

var new_json = {test:{}};
$(document).ready(function(){
    $.each(json.test, function(key, value){
        //console.log("key = "+key);
        //console.log("value = ");
        //console.log(value);
        var new_obj = {};
        new_obj.a = value.a;
        new_obj.c = value.c;
        new_json.test[key] = new_obj;
    });

    console.log("new_json = ");
    console.log(new_json);//here new_json will only contain attributes "a" and "c" only
});