json数据的处理

1 JSON字符串和JSON对象


//如果是json对象 可以直接通过点访问value值  ================================================

var people1={ 
"name":'hehe', 
"age":18 
}; 
alert(people1.name);

var people1=[     
        {"ircEvent": "PRIVMSG", "method": "newURI", "regex": "^http://.*"},     
        {"ircEvent": "PRIVMSG", "method": "deleteURI", "regex": "^delete.*"},     
        {"ircEvent": "PRIVMSG", "method": "randomURI", "regex": "^random.*"}     
    ];
 alert(people1[0].ircEvent);
jquery对jsonarray的获取办法
 $.each(<span style="font-family: Arial, Helvetica, sans-serif;">people1</span><span style="font-family: Arial, Helvetica, sans-serif;">, function() {</span>
       $('#fromcity2').val(this.fromcity);
}


//如果是json字符串   需要先进行转换  ================================================

var people1="{ 
\"name\":'hehe', 
\"age\":18 
}"; 
var result=eval('('+people1+')');
alert(people1.name);


2 JSON对象和字符串之间的相互转换

======================================================================

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

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

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

JSON.stringify(obj)将JSON转为字符串。

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

上面的转换可以这么写:

 
 
  1. var a={"name":"tom","sex":"男","age":"24"};
  2.  
  3. var b='{"name":"Mike","sex":"女","age":"29"}';
  4.  
  5. var aToStr=JSON.stringify(a);
  6.  
  7. var bToObj=JSON.parse(b);
  8.  
  9. alert(typeof(aToStr));  //string
  10.  
  11. alert(typeof(bToObj));//object

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对象,

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

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


3 ajax中返回的json数据格式的处理

//================================================================

1 如果是使用原生的xmlHttpRequest 返回的是json字符串 需要进行转化

    function ajaxCallBack()
    {
        if(xmlHttpRequest.readyState == 4)
        {
            if(xmlHttpRequest.status == 200)
            {
                var content = xmlHttpRequest.responseText;
                document.getElementById("div1").innerHTML = content;
            }
        }
    }

2如果是使用的jquery的$.post(url,data,function(result){},'json') 如果返回类型直接标示为json 那么返回的直接是json对象 可以直接使用

$.post('<%=request.getContextPath() %>/Account/wlbis/deleteOrder.html',{seq:row.seq},function(result){  
	                        if (result.successMsg){  
	                            $('#sendOrderInfoTable').datagrid('reload');    // reload the user data  
	                        } else {  
	                            $.messager.alert('Error',result.errorMsg,'error');  // show error message  
	                        }  
},'json');


3如果使用的是easyui的form提交 返回的是json字符串 需要eval进行处理

    	
function saveqianshouInfo(){
$('#fmqianshou').form('submit',{  
            url: url,  
            onSubmit: function(){  
                return $(this).form('validate');  
            },  
            success: function(result){  
                var result = eval('('+result+')');
                if (result.errorMsg){  
                    $.messager.alert('Error',result.errorMsg,'error');  
                } else {  
                    $('#orderqianshouDlg').dialog('close');
                    $('#sendOrderInfoTable').datagrid('reload');
                    $.messager.alert('success','签收成功','success'); 
                }  
            }  
        });  
}




 


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值