zoukankan      html  css  js  c++  java
  • JS 中 JSON 对象与字符串之间的相互转换

      在开发的过程中,如果对于少量参数的前后台传递,可以直接采用ajax的data函数,按json格式传递,后台Request即可,但有的时候,需要传递多个参数,这样后台

    接受的时候Request多个很麻烦,此时要按照类的格式 或 集合的形式进行传递。

    1、传递单一对象Json

      例如:前台按类的格式传递JSON对象:

      var jsonUser = "{"UserName":"" + userName  + "","Sex":"" + sex + "","City":"" + city + "","Age":"" + age+ ""}";

      如拼出的 jsonUser 无转义符号,需要 var jsonArrayFinal = JSON.stringify(jsonArray); 进行转换后再传递。

    $.ajax(
      {
        type: "post",
        url: "UserHandler.ashx",
        data: { userInfo: jsonUser, flag: "1", key: "1" },
        dataType: "text",
        success: function(data) {
          $("#divMsg").html(data);
        }
     });

    2、传递集合类型Json

      如果前台传递多个类格式的 JSON 数组,也就是集合类型,如下:

      [{"name":"a"},{"name","b"},{"name","c"}]

      此时必须使用 JSON.stringify 将数组对象转换成字符串,再进行AJAX传递即可。

      比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象:

      var a={"name":"tom","sex":"男","age":"24"};
      var b='{"name":"Mike","sex":"女","age":"29"}';

      在Firefox,chrome,opera,safari,ie9,ie8等高级浏览器直接可以用JSON对象的 stringify() 和 parse() 方法。

      JSON.stringify(obj)  将JSON转为字符串,JSON.parse(string) 将字符串转为JSON格式;

      上面的转换可以这么写:

    var a={"name":"tom","sex":"男","age":"24"}; 
    var b='{"name":"Mike","sex":"女","age":"29"}'; 
    var aToStr=JSON.stringify(a); 
    var bToObj=JSON.parse(b); 
    alert(typeof(aToStr));  //string 
    alert(typeof(bToObj));//object 

      ie8(兼容模式)、ie7和ie6没有JSON对象,不过http://www.json.org/js.html提供了一个json.js,这样ie8(兼容模式)、ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;可以在 https://github.com/douglascrockford/JSON-js 上获取到这个js,一般现在用json2.js。

      ie8(兼容模式)、ie7、ie6可以使用 eval() 将字符串转为JSON对象,

    var c='{"name":"Mike","sex":"女","age":"29"}'; 
    var cToObj=eval("("+c+")"); 
    alert(typeof(cToObj)); 

      jQuery中也有将字符串转为JSON格式的方法 jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象。当然如果有兴趣可以自己封装一个jQuery扩展,jQuery.stringifyJSON(obj) 将JSON转为字符串。

  • 相关阅读:
    控件显示和隐藏
    删除标题和边框
    界面图片
    VC界面最前端显示
    在VC++6.0开发中实现全屏显示
    VC比例放大缩小
    plsql dev
    通过OCCI连接oracle(C++)
    VC++使用Pro*CC++
    文件对话框
  • 原文地址:https://www.cnblogs.com/xinaixia/p/8241857.html
Copyright © 2011-2022 走看看