假如有一个对象具有参数”prop1”, “prop2”, “prop3”。 我们可以通过传递 附加参数JSON.stringify 来选择性地将参数生成字符串,像这样:

var obj = {
    'prop1': 'value1',
    'prop2': 'value2',
    'prop3': 'value3'
};

var selectedProperties = ['prop1', 'prop2'];

var str = JSON.stringify(obj, selectedProperties);

// str
// {"prop1":"value1","prop2":"value2"}

“str” 将只包含选择的参数。

除了传递数组,我们也可以传递函数。


function selectedProperties(key, val) {
    // the first val will be the entire object, key is empty string
    if (!key) {
        return val;
    }

    if (key === 'prop1' || key === 'prop2') {
        return val;
    }

    return;
}

最后一个参数,可以修改生成字符串的方式。

var str = JSON.stringify(obj, selectedProperties, '\t\t');

/* str output with double tabs in every line.
{
        "prop1": "value1",
        "prop2": "value2"
}
*/