龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

关于Json的一点总结

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
Json一般用在少量的数据处理。因为格式简单,操作方便,而且javascript本事就支持Json格式的处理功能。所以建议大家使用 Json一般格式如下:{id:1,name:abc}或者[{id:1,name:abc},{id:1,name:abc}] 下

Json一般用在少量的数据处理。因为格式简单,操作方便,而且javascript本事就支持Json格式的处理功能。所以建议大家使用

Json一般格式如下:{"id":"1","name":"abc"}或者[{"id":"1","name":"abc"},{"id":"1","name":"abc"}]

下面是js中几种解释Json格式的方法:

  1. eval('('+Json+')'

为什么这样写:主要是因为在JavaScript中,表达式语句不允许以左花括号”{“开始,如果这样做,会与块语句产生混淆.在使用eval()解析JSON文本时,为了解决这个问题,就需要加上圆括号.圆括号作为分组运算符,可以对包围在其中的表达式求职.

  1. var strJSON= (new Function("return " + Json))(); 

通过创建方法的方式解释Json

  1. var strJSON= JSON.parse(Json); 

注意:这种方法能够解释的Json格式必须键值对都要加双引号,不然解释不了Json格式

实例

Json.aspx页面

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Json.aspx.cs" Inherits="web.javascript.Json.Json" %>  
  2. <!DOCTYPE html>  
  3. <html xmlns="http://www.w3.org/1999/xhtml">  
  4. <head runat="server">  
  5. <title></title>  
  6. </head>  
  7. <body>  
  8. <form id="form1" runat="server">  
  9. <div id="div1">  
  10. </div>  
  11. <input type="button" id="btn" value="but" />  
  12. </form>  
  13. <script type="text/javascript" src="http://www.cnblogs.com/script/jquery-1.7.1.min.js"></script>  
  14. <script type="text/javascript">  
  15. // 异步处理Json对象  
  16. $("#btn").click(function() {  
  17. $.ajax({  
  18. url: "Json.ashx",  
  19. type: "post",  
  20. data: { id: "123" },  
  21. datatype: "Json",  
  22. success: function(data) {  
  23. var strData = data;  
  24. alert("1-----------");  
  25. var str1 = eval("(" + data + ")"); // 第一种js解释Json  
  26. alert("2-----------");  
  27. var str2 = (new Function("return " + strData))(); // 第二种js解释Json  
  28. alert(str2.id + " @ " + str2.name);  
  29. alert("3-----------");  
  30. var str3 = JSON.parse(strData);  
  31. alert(str3.id + " @ " + str3.name);  
  32. // 处理多维Json  
  33. var strSs = "";  
  34. alert(str1.length);  
  35. for (var i = 0; i <str1.length; ++i) {  
  36. strSs += str1[i].id + "@" + str1[i].name + " ";  
  37. }  
  38. alert(strSs);  
  39. },  
  40. error: function(xhr, data, ts) {  
  41. alert(data);  
  42. }  
  43. });  
  44. });  
  45. </script>  
  46. </body>  
  47. </html>  
  48. Json.ashx处理程序  
  49. using System;  
  50. using System.Collections.Generic;  
  51. using System.Linq;  
  52. using System.Web;  
  53. using System.Web.Services;  
  54. namespace web.javascript.Json  
  55. {  
  56. /// <summary>  
  57. /// $codebehindclassname$ 的摘要说明  
  58. /// </summary>  
  59. [WebService(Namespace = "http://tempuri.org/")]  
  60. [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]  
  61. public class Json1 : IHttpHandler  
  62. {  
  63. public void ProcessRequest(HttpContext context)  
  64. {  
  65. context.Response.ContentType = "text/plain";  
  66. // 多维  
  67. string strJSONs = "[{\"id\":1,\"name\":\"11\"},{\"id\":2,\"name\":\"22\"},{\"id\":3,\"name\":\"33\"}]";  
  68. // 一维  
  69. //string strJSONs={\"id\":\"123\",\"name\":\"qwe\"}  
  70. context.Response.Write(strJSONs);  
  71. context.Response.End();  
  72. }  
  73. public bool IsReusable  
  74. {  
  75. get  
  76. {  
  77. return false;  
  78. }  
  79. }  
  80. }  

以上是本人在实际项目中的总结,希望对大家有帮助,同时也希望大家多多指点。

本文地址http://www.cnblogs.com/snakeraining/archive/2012/03/26/2418519.html

【责任编辑:彭凡 TEL:(010)68476606】
精彩图集

赞助商链接