關於json的一點總結


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;
            }
        }
    }
}

  

 

以上是本人在實際項目中的總結,希望對大家有幫助,同時也希望大家多多指點。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM