只要是好东西,都应该主动分享出来,让大家都用起来;鼓励开源,大家一起,为积累更多更好的东西而奋斗!

JSON转换工具(json-tool)

JsonTool.stringify(value)点击展开

一、接口功能

将JSON对象转换为字符串
其中JSON只能是由基本数据类型组成的,不能是HTMLElement对象

二、参数说明

/**
 * 将JSON对象转换为字符串;其中JSON只能是由基本数据类型组成的,不能是HTMLElement对象
 *
 * @param   value    由undefined、null、Number、Boolean、String、Date基本类型组成的
 *                   任意JSON对象,也可以是由多个JSON组成的Array
 * @return  {String} 转换后的字符串值
 */
mark:组件内部不进行数据格式的合法性校验,使用过程中需要注意参数的格式。

三、示例

1、转换简单数据类型
                    // 简单数据类型
                    var value = JsonTool.stringify({
                        author : 'Alien',
                        age : 25,
                        man : true,
                        now : new Date()
                    });

                    // 如上形式的转换,会得到如下形式的字符串:
                    // {"author":"Alien","age":25,"man":true,"now":"2013-03-20T00:00:24"}
                
2、多层嵌套的JSON
                    // 较复杂的JSON
                    var value = JsonTool.stringify({
                        now : new Date(),
                        info : {
                            age : 25,
                            man : true,
                            other : {
                                homePlace : '贵州'
                            }
                        }
                    });

                    // 如上复杂JSON对象,转换后为:
                    // {"now":"2013-03-20T00:04:02","info":{"age":25,"man":true,"other":{"homePlace":"贵州"}}}
                
3、参数不合法的情况下,转换会失败
                    // 不合法的参数
                    var value = JsonTool.stringify({
                        el : document.body,
                        fn : function(){
                                alert(1);
                             },
                        u : undefined,
                        flag : false
                    });

                    // 如上JSON对象,转换后的结果为:
                    /*
                        {"el":"[object HTMLBodyElement]","fn":function (){
                                alert(1);
                             },"u":undefined,"flag":false}
                    */
                
从上面的结果能看到,document.body被直接进行了HTMLElement.toString(),并且没有了任何的意义

JsonTool.parse(strJson)点击展开

一、接口功能

将字符串转换为JSON对象
组件内部不进行数据格式的校验,所以,当数据格式不合法时,会直接返回null

二、参数说明

/**
 * 将字符串转换为JSON对象
 *
 * @param {String}  strJson 需要转换为JSON对象的字符串;字符串也必须要求是JSON数据格式的
 * @return {Object}         字符串格式合法时,返回对应的JSON对象;否则,返回null
 */

三、示例

1、参数为合法的JSON格式字符串
                    // 参数合法
                    var strJson = '{"author":"Alien","age":25,"man":true,"now":"2013-03-20T00:00:24"}';
                    var json = JsonTool.parse(strJson);

                    // 返回正确的object
                
2、参数不合法的情况
                    // 参数不合法
                    var strJson = "{a:1,b:2";
                    var json = JsonTool.parse(strJson);

                    // 返回结果:null