JSON 体验JSON (一) jquery/AJAX 筒单例子

前记:以前就做过JSON 的例子很久没用给忘了,今天同事要用jquery/AJAX 来做报表让我帮忙还真有点麻烦。所以开头一章筒单调用

介绍

对象与json(JavaScript Object Notation)

JSON具有以下这些形式:
     对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
     数组是 值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔值(value)可以是双引号括 起来的字符串(string)、数值(number)、true、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
     字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。


对象用{}
数组用[]
var Users=[
             {"userID":"1","Name":"Froog","friends":["Jack","Zack","Justin"]},
             {"userID":"2","Name":"Zack","friends":["Jack","Zack","Justin"]},
             {"userID":"3","Name":"Justin","friends":["Jack","Zack","Justin"]}
          ];

转换JSON字符到Object
         var JsonString = '{"userID":"2","Name":"Froog","friends":["Jack","Zack","Justin"]}';   
         var User2 = eval('(' + JsonString + ')');
         alert(User2.Name);
         alert(User2.friends[0]);

//引用 json.js 实现JSON字符与Object相互转换。
         var obj = JsonString.parseJSON();   
         alert(obj.toJSONString());  

 。net  jquery/AJAX调用时场景

//AJAX 中使用JSON    

1、先建立一个webScript服务

2、在web服务类前面标记 [System.Web.Script.Services.ScriptService]

3、webScript服务方法返回一个符合JSON格式的字符串

4、执行jquery 的文事件$(document).ready ,

5、通过$()选择器绑定对像

6、在对象事件里面发送ajax请求 $.ajax();

7、ajax data:传入到服务器的参数,键值如: data:"{TM:'ok'}",

8、   把服务器JSON转成js的obj对象  var obj=eval(data.d);

9、这样JSON就成为JS 的object对象了

webScript服务方法

         [WebMethod]
        public string HelloWorld()
        {
             return "{name:'hello word!'}";
        }
          function getResult()
          { 

  $(document).ready(function(){
            $.ajax({
           type: "POST",
           url: "?Json=true",
           data:"{TM:'ok'}", //无参也必须指定一个参数
           success: function(msg){ 
                                 var obj=eval(data.d);
                                 alert( obj.Name);
                                  }
         });

});

从服务器来的是json数组
如[{id:1,name:"小子"},{id:2,name:"大子"}]
在客户端需要eval("("+json数组对象+")"); 这样用javascript运行一次

从服务来的是json数据转成javascript的json
1.var data=eval(data);  eval()函数没有任何作用,就是运行起javascript的代码

2.jquery中$.get("url",null,function(data),"json") 写上"json"这个参数那么返回的数据将作为json处理


vs2005

如:单个json对象 var data=eval(data.d);
如:数组json对象 var data=eval("("+data.d+")") ;

注vs2008一定要加.d才能正常将jquery的json转成javascript的json对象
如:单个json对象 var data=eval(data.d);
如:数组json对象 var data=eval("("+data.d+")") ;

原文地址:https://www.cnblogs.com/heling/p/1664180.html