zoukankan      html  css  js  c++  java
  • js json字符串与json对象互相转换(最全)

    1.json字符串转json对象

      使用场景:通常在取json字符串里具体的值时,会用到。

    var jsonString = '{"name":"Marydon","website":"www.cnblogs.com"}';
    

      方式一:eval()

      使用eval()进行转换时需要在json字符串外包裹一对小括号,不加小括号无效。 

    var jsonObject= eval('(' + jsonString +')');
    

      方式二:JSON.parse()  

    var jsonObject= JSON.parse(jsonString);
    

      方式三:$.parseJSON()

      页面需要引入jQuery

    var jsonObject = $.parseJSON(jsonString);
    

      方式四:使用json2.js

      json2.js 提供了json的序列化和反序列化方法,完美支持各个浏览器。

      使用时我们首先要将json2.js引用进来,源码地址:https://github.com/douglascrockford/JSON-js。

    var jsonObject= JSON.parse(jsonString);

    2.json对象转json字符串

       使用场景:通常在使用ajax想后台传输数据时使用,因为如果直接传递json对象,java后台接收该请求的方法需要将请求参数格式指定为json对象,甚至将其转换成json字符串,对于后台开发人员很不方便。

    var jsonObject = {"name":"Marydon","website":"www.cnblogs.com"};  

      方式一:JSON.stringify()

    var jsonString = JSON.stringify(jsonObject);
    

      方式二:使用json2.js

      使用方式和上面一样。

    var jsonString = JSON.stringify(jsonObject);
    

      方式三:$.stringify()

      首先,jQuery并没有该方法,但是我们可以对其进行扩展。

    jQuery.extend({
        stringify  : function stringify(obj) {
            var t = typeof (obj);
            if (t != "object" || obj === null) {
                // simple data type
                if (t == "string") obj = '"' + obj + '"';
                return String(obj);
            } else {
                // recurse array or object
                var n, v, json = [], arr = (obj && obj.constructor == Array);
                for (n in obj) {
                    v = obj[n];
                    t = typeof(v);
                    if (obj.hasOwnProperty(n)) {
                        if (t == "string") v = '"' + v + '"';
                        else if (t == "object" && v !== null) v = jQuery.stringify(v);
                        json.push((arr ? "" : '"' + n + '":') + String(v));
                    }
                }
                return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}");
            }
        }
    });
    

      第一步:在所需要使用的页面引入你的jQuery文件;

      第二步:将上面js代码添加到在你要调用该方法代码之前的位置(最好是头部,方便代码维护)。

    var jsonString = $.stringify(jsonObject);
    

    写在最后

      哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!

     相关推荐:

  • 相关阅读:
    65 进程互斥锁的优化实现
    Linux多线程编程
    互斥锁和自旋锁
    64 进程互斥锁的初步实现(下)
    63 进程互斥锁的初步实现(中)
    Linux中断子系统
    62 进程互斥锁的初步实现(上)
    61 进程互斥锁的详细设计
    Linux进程调度的时机
    嵌入式领域linux作为实时操作系统的缺点(转)
  • 原文地址:https://www.cnblogs.com/Marydon20170307/p/11890879.html
Copyright © 2011-2022 走看看