什么是JSON?JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互,比xml更轻量级。json本身利用了js中面向对象的形式。对象可以打点访问。

用途:原来写ajax,要从服务器后台得到返回值,如果利用ajax.dll可以返回一个dt;

但用jquery不能得到一个dt,要想得到dt里的数据就拼接字符串,然后在html中获得这个字符串,再分割开来。

并不知道用json这样一个非常简便的面向对象的数据格式。

语法:元素与值用冒号 ":" 隔开  元素与元素用逗号 "," 隔开  {} 之间是一个对象, 对象可以层层嵌套

  [] 表示数组, 数组元素用逗号 "," 隔开  值可以是 string、number、object、array、true、false、null;

 其中 string 要使用双引号(也有语言可以用单引号)  string 中可以使用类似 C 语言的转义字符

  number 可以使用科学计数法

举个简单的例子:


<script>
function showJSON() {    
    
var user =     
    {     
        
"username":"andy",    
        
"age":20,    
        
"info": { "tel""123456""cellphone""98765"},    
        
"address":    
            [    
                {
"city":"beijing","postcode":"222333"},    
                {
"city":"newyork","postcode":"555666"}    
            ]    
    }    
        
    alert(user.username);    
    alert(user.age);    
    alert(user.info.cellphone);    
    alert(user.address[
0].city);    
    alert(user.address[
0].postcode);    
}    
</script>

JSON提供了json.js包,下载/Files/sunyaling/json.rar 后,将其引入然后就可以简单的使用object.toJSONString()转换成JSON数据。

js本身可以转换json格式


<script>
//可以使用eval来转换JSON字符到Object
function myEval() {    
    
var str = '{ "name": "Violet", "occupation": "character" }';    
    
var obj = eval('(' + str + ')');    
    alert(obj.name);    
}   
--------------------
//或者使用parseJSON()方法
function myEval() {    
    
var str = '{ "name": "Violet", "occupation": "character" }';    
    
var obj = str.parseJSON();    
    alert(obj.toJSONString());    
}   
</script>


页面引用      


<script src="js/jquery.json.js" type="text/javascript" charset="utf-8"></script>

一个ajax结合json的例子:

服务器端返回数据,注意转译"\\"


StringBuilder result = new StringBuilder();
            result.Append(
"{");
            result.Append(
"\"msg\":\""+str1.Replace("\"","\\\"")+"\","); // " \"
            result.Append("\"times\":\""+str2+"\"");
            result.Append(
"}");
            Response.Write(result.ToString());

 


<script>
        
function ShowNum()
        { 
            
try
            {
                
var port = $("#txtPort").val();
                
var time = $("#txtTime").val(); 
                $.ajax({ 
                    url:
'AjaxHander.aspx?action=getChatroomActions'
                    type:
'post'//数据发送方式 
                    dataType:'html'//接受数据格式 (这里有很多,常用的有html,xml,js,json)
                    data:'port='+port+'&time='+time+'&date='+new Date(), //要传递的数据 
                    error: function(){  //失败
                            //alert('Error loading document');
                        },
                    success: 
function(msg)
                            { 
//成功                               
                                var msJson = $.evalJSON(msg); 
                                 
                                $(
"#ulListener").html(msJson.msg+$("#ulListener").html());        
                                         
                                
if($("#ulListener").find("li").length>10)
                                {
                                    $(
"#ulListener").find("li").each(function(i) {
                                        
if(i>9)
                                            $(
this).remove();
                                    });
                                }
                                
                                $(
"#txtTime").val(msJson.times);//时间                                 
                            }
                    });
                }
catch(e){alert(e);}
        }
        
//ShowNum();
        setInterval(ShowNum,5000); 
    
</script>

 

0
0
(请您对文章做出评价)
posted on 2009-11-24 21:58  钱途无梁  阅读(1153)  评论(1编辑  收藏  举报