关于Json的一点总结

开发 前端
我们会经常用到Json来处理少量的数据。因为格式简单,操作方便,而且Javascript本事就支持Json格式的处理功能。所以建议大家使用。

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

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

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

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

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

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

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

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

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

  实例

  Json.aspx页面

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

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

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

【编辑推荐】

  1. 理解JSON:3分钟课程轻松搞定
  2. JSONP跨域原理和jQuery.getJSON用法
  3. 在PHP语言中使用JSON
  4. Jackson框架轻易转换JSON
  5. Ajax和WEB服务数据格式:JSON JSONP
责任编辑:彭凡 来源: 博客园
相关推荐

2014-06-04 10:48:38

Swift苹果iOS

2012-07-12 10:49:53

项目管理

2009-09-14 20:17:05

并行LINQ

2011-07-14 16:17:47

AmoebaMySQL

2009-08-03 09:17:30

ASP.NET Ses

2018-03-28 15:07:16

测试环境vagrant

2011-12-23 09:16:19

2018-03-21 14:23:39

vagrant测试环境

2009-08-18 13:06:17

C#枚举类型

2011-07-18 16:33:20

sqlite

2017-12-29 21:49:36

信息安全网络攻击漏洞

2009-08-28 16:30:24

C#线程

2009-06-25 13:59:59

java认证FileFilter

2013-06-26 10:13:32

C语言结构体结构体偏移

2022-04-06 07:14:29

区块链网络生态系统

2019-06-17 06:18:27

边缘计算物联网雾计算

2009-08-18 17:20:17

C#操作符重载

2010-05-20 15:29:43

优化IIS

2011-07-12 17:55:28

尾日志备份

2011-04-07 10:13:48

数据库开发
点赞
收藏

51CTO技术栈公众号