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

1
2
3
4
5
6
7
8
9
10
11
12
var obj = {
'prop1': 'value1',
'prop2': 'value2',
'prop3': 'value3'
};

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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13

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;
}

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

1
2
3
4
5
6
7
8
var str = JSON.stringify(obj, selectedProperties, '\t\t');

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