JSON点滴

本文介绍了JSON数据格式的特点,特别是对于非标准键名的处理方式。同时,详细讲解了如何在现代浏览器及旧版IE中实现JSON对象与字符串之间的相互转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JSON是一种轻量级的数据交换格式,对key的命名要求不是特别严格,所以基本上都可以方便的解析

使用json时,key一般应使用合法的变量名(字母或下划线开头的包括字母、下划线和数字的字符串) 

如果非合法的话,需要进一步转换:如下

var json = '{"500":"a", "500G":"b", "I3":2}';

 

alert(data.0);    //报错,此方式不可用 

alert(data['500G']); //正确

//特别是商品规格,如下:

 var $guige = $("#guige");

 var $ShopRemodal = $("<div class='shop-remodal-img'></div>");

 var $RemodalImg = $("<div class='remodal-img'><img src='" + thisInfo.path_name + "'/></div>");
 var $div = $("<div style='width:115px;height:80px;float:left;'></div>");
 var $aspan = $("<span class='remodal-span'>"+ '¥' + thisInfo.price + " </span>");
 var $Rbtn = $("<button data-remodal-action='close' class='remodal-close' aria-label='Close'></butoon>");
 if('01' == thisInfo.sale_statu) {
var $Rp = $("<p class='remodal-p'>"+'库存'+ thisInfo.stock + '件' +"</p>");
  } else {
var $Rp = $("<p class='remodal-p'>"+'库存'+ thisInfo.advance_stock + '件' +"</p>");
}
        var $SRp =$("<p class='remodal-p' style='margin-top:-10px;'>"+ thisInfo.argument +"</p>");
              $ShopRemodal.append($RemodalImg);
              $ShopRemodal.append($div);
              $ShopRemodal.append($aspan);
              $ShopRemodal.append($Rbtn);
              $ShopRemodal.append($Rp);
              $ShopRemodal.append($SRp);
              $guige.append($ShopRemodal);
              
              //规格一
              var $ShopTitle = $("<div class='shop-remodal-title'></div>");
              var $TitleP = $("<p class='title-p'>"+ thisInfo.argument +"</p>");
              var $TitleUl = $("<ul></ul>");
              $.each(thisMap, function(index) {
                console.log(index)
                var $TitleLi = $("<li class='title-li'>"+ index +"</li>");
                  $TitleUl.append($TitleLi);
              });
              $ShopTitle.append($TitleP);
              $ShopTitle.append($TitleUl);
              $guige.append($ShopTitle);


//json前台数据转换

[js][json]前台页面中json和字符串相互转化(转)

比如我有两个变量,我要将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
 

JSON.stringify()

ie8(兼容模式),ie7和ie6没有JSON对象,不过http://www.json.org/提供了一个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转为字符串。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值