Fork me on GitHub
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页面

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
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="json.aspx.cs" Inherits="web.javascript.json.json" %>
 
<!DOCTYPE html>
<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处理程序

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

  

 

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

03 2012 档案

 
摘要: json一般用在少量的数据处理。因为格式简单,操作方便,而且javascript本事就支持json格式的处理功能。所以建议大家使用json一般格式如下:{"id":"1","name":"abc"}或者[{"id":"1","name":"abc"},{"id":"1","name":"abc"}]下面是js中几种解释json格式的方法: 1,eval(&#阅读全文
posted @ 2012-03-26 20:52 雨蛇竹子 阅读(934) | 评论 (4) 编辑
 
摘要: 为什么要开通博客一直以来就想来写点什么,但是不知道些什么或从何写起。有时候我在想,生活应该对一点除了工作之外的一些事情,不如周末去旅游,打打球,散散步之类的或者和朋友打打牌、吃点火锅...但,时间是一天天的过来,而我的生活好像整天都埋在了程序里面,整天想它,学习...可是我并不觉得自己因此而获得了一点的收获。我现在是一个程序员,也许某一天不是...正如我的人生道路一样,在我没有遇见就发生了一些事情。就写这么多了。希望每个人都有灿烂的生活。阅读全文
posted @ 2012-03-24 21:26 雨蛇竹子 阅读(4) | 评论 (0) 编辑

 

posted on 2012-03-27 09:28  HackerVirus  阅读(201)  评论(0编辑  收藏  举报