關(guān)于Json的一點(diǎn)總結(jié)
Json一般用在少量的數(shù)據(jù)處理。因?yàn)楦袷胶?jiǎn)單,操作方便,而且javascript本事就支持Json格式的處理功能。所以建議大家使用
Json一般格式如下:{"id":"1","name":"abc"}或者[{"id":"1","name":"abc"},{"id":"1","name":"abc"}]
下面是js中幾種解釋Json格式的方法:
- eval('('+Json+')')
為什么這樣寫:主要是因?yàn)樵贘avaScript中,表達(dá)式語句不允許以左花括號(hào)”{“開始,如果這樣做,會(huì)與塊語句產(chǎn)生混淆.在使用eval()解析JSON文本時(shí),為了解決這個(gè)問題,就需要加上圓括號(hào).圓括號(hào)作為分組運(yùn)算符,可以對(duì)包圍在其中的表達(dá)式求職.
- var strJSON= (new Function("return " + Json))();
通過創(chuàng)建方法的方式解釋Json
- var strJSON= JSON.parse(Json);
注意:這種方法能夠解釋的Json格式必須鍵值對(duì)都要加雙引號(hào),不然解釋不了Json格式
實(shí)例
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對(duì)象
- $("#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;
- }
- }
- }
- }
以上是本人在實(shí)際項(xiàng)目中的總結(jié),希望對(duì)大家有幫助,同時(shí)也希望大家多多指點(diǎn)。
本文地址:http://www.cnblogs.com/snakeraining/archive/2012/03/26/2418519.html
【編輯推薦】