zoukankan      html  css  js  c++  java
  • JSON

    和 XML 一样,JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的,因此,JSON 的数据格式非常简单,您可以用 JSON 传输一个简单的 String,Number,Boolean,也可以传输一个数组,或者一个复杂的 Object 对象。

    除了字符 "\/ 和一些控制符(\b\f\n\r\t)需要编码外,其他 Unicode 字符可以直接输出。

    Boolean 类型表示为 truefalse 。此外,JavaScript 中的 null 被表示为 null,注意,truefalsenull 都没有双引号,否则将被视为一个 String 。

    JSON 还可以表示一个数组对象,使用 [] 包含所有元素,每个元素用逗号分隔,元素可以是任意的 Value,例如,以下数组包含了一个 String,Number,Boolean 和一个 null:

    ["abc",12345,false,null]
    Object 对象在 JSON 中是用 {} 包含一系列无序的 Key-Value 键值对表示的,
    其中 Value 也可以是另一个 Object 或者数组,因此,复杂的 Object 可以嵌套表示,例如,一个 Person 对象包含 name 和 address 对象,
    {
     "TableInfo":
     [
     { "SequenceID":"2392","SequenceName":"考试(01)011","BeginTime":"2011-3-17 0:00:00","EndTime":"2011-3-17 0:00:00","StudyCenterCode":"01","StudyCenterName":"四川大学网络教育学院(校内)","total":"1922","status":"1"},
     { "SequenceID":"2393","SequenceName":"考试(QB)004","BeginTime":"2011-1-11 0:00:00","EndTime":"2011-1-11 0:00:00","StudyCenterCode":"QB","StudyCenterName":"杭州广播电视大学","total":"2","status":"1"},
     { "SequenceID":"2381","SequenceName":"考试(QD)003","BeginTime":"2011-1-7 0:00:00","EndTime":"2011-1-7 0:00:00","StudyCenterCode":"QD","StudyCenterName":"金华职业技术学院","total":"94","status":"1"}
      ],"Count":"10"
      }

    JavaScript 处理 JSON 数据

    上面介绍了如何用 JSON 表示数据,接下来,我们还要解决如何在服务器端生成 JSON 格式的数据以便发送到客户端,以及客户端如何使用 JavaScript 处理 JSON 格式的数据。

    我们先讨论如何在 Web 页面中用 JavaScript 处理 JSON 数据。我们通过一个简单的 JavaScript 方法就能看到客户端如何将 JSON 数据表示给用户:

    function handleJson() {
                var j={"name":"Michael","address":
                {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
                };
                document.write(j.name);
                document.write(j.address.city);
                }

    假定服务器返回的 JSON 数据是上文的:

    {"name":"Michael","address":
                {"city":"Beijing","street":" Chaoyang Road ","postcode":100025}
                }

    只需将其赋值给一个 JavaScript 变量,就可以立刻使用该变量并更新页面中的信息了,相比 XML 需要从 DOM 中读取各种节点而言,JSON 的使用非常容易。我们需要做的仅仅是发送一个 Ajax 请求,然后将服务器返回的 JSON 数据赋值给一个变量即可。有许多 Ajax 框架早已包含了处理 JSON 数据的能力,例如 Prototype(一个流行的 JavaScript 库:http://prototypejs.org)提供了 evalJSON() 方法,能直接将服务器返回的 JSON 文本变成一个 JavaScript 变量:

    new Ajax.Request("http://url", {
                method: "get",
                onSuccess: function(transport) {
                var json = transport.responseText.evalJSON();
                // TODO: document.write(json.xxx);
                }
                });
  • 相关阅读:
    wget(转)
    852. Peak Index in a Mountain Array
    617. Merge Two Binary Trees
    814. Binary Tree Pruning
    657. Judge Route Circle
    861. Score After Flipping Matrix
    832. Flipping an Image
    461. Hamming Distance
    654. Maximum Binary Tree
    804. Unique Morse Code Words
  • 原文地址:https://www.cnblogs.com/suzh/p/2114704.html
Copyright © 2011-2022 走看看