JSON.stringify 功能 (javascript)

本文通过三个示例介绍了如何使用 JSON.stringify 方法来序列化 JavaScript 对象。包括选择性地序列化对象属性、将数组元素转换为大写及将字符串成员值转换为大写。

http://msdn.microsoft.com/zh-cn/library/ie/cc836459.aspx

 

此示例使用 JSON.stringify 序列化为 JSON 文本的 contact 对象。memberfilter 数组中定义,以便序列化仅 surnamephone 成员。firstname 成员省略。

JavaScript
var contact = new Object();
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

var memberfilter = new Array();
memberfilter[0] = "surname";
memberfilter[1] = "phone";
var jsonText = JSON.stringify(contact, memberfilter, "\t");
/* The value of jsonText is:
'{
    "surname": "Aaberg",
    "phone": [
        "555-0100",
        "555-0120"
    ]
}'
*/

此示例使用 JSON.stringify 序列化数组。replaceToUpper 函数在数组中的每个字符串转换为大写。

JavaScript
var continents = new Array();
continents[0] = "Europe";
continents[1] = "Asia";
continents[2] = "Australia";
continents[3] = "Antarctica";
continents[4] = "North America";
continents[5] = "South America";
continents[6] = "Africa";

var jsonText = JSON.stringify(continents, replaceToUpper);
/* The value of jsonText is:
'"EUROPE,ASIA,AUSTRALIA,ANTARCTICA,NORTH AMERICA,SOUTH AMERICA,AFRICA"'
*/

function replaceToUpper(key, value) {
    return value.toString().toUpperCase();
}

此示例使用 toJSON 方法序列化字符串成员值为大写。

JavaScript
var contact = new Object(); 
contact.firstname = "Jesper";
contact.surname = "Aaberg";
contact.phone = ["555-0100", "555-0120"];

contact.toJSON = function(key)
 {
    var replacement = new Object();
    for (var val in this)
    {
        if (typeof (this[val]) === 'string')
            replacement[val] = this[val].toUpperCase();
        else
            replacement[val] = this[val]
    }
    return replacement;
};

var jsonText = JSON.stringify(contact);

/* The value of jsonText is:
'{"firstname":"JESPER","surname":"AABERG","phone":["555-0100","555-0120"]}'

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值