json一般用在少量的數據處理。因為格式簡單,操作方便,而且javascript本事就支持json格式的處理功能。所以建議大家使用
json一般格式如下:{"id":"1","name":"abc"}或者[{"id":"1","name":"abc"},{"id":"1","name":"abc"}]
下面是js中幾種解釋json格式的方法:
1,eval('('+json+')')
為什么這樣寫:主要是因為在JavaScript中,表達式語句不允許以左花括號”{“開始,如果這樣做,會與塊語句產生混淆.在使用eval()解析JSON文本時,為了解決這個問題,就需要加上圓括號.圓括號作為分組運算符,可以對包圍在其中的表達式求職.
2,var strJSON= (new Function("return " + json))();
通過創建方法的方式解釋json
3,var strJSON= JSON.parse(json);
注意:這種方法能夠解釋的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 + "\n"; } 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; } } } }
以上是本人在實際項目中的總結,希望對大家有幫助,同時也希望大家多多指點。