zoukankan      html  css  js  c++  java
  • Adobe Spry 中文文档库 Spry JSON 数据集概述

     

    JSON 基于于JavaScript对象标记。它是一个用Javascript编写的轻量级的数据交换格式。使用简单并且文件小巧是一些开发者的首选。

    现在Spry可以在页面中使用这种数据格式了。

    Spry区域是不关心数据的来源的,所以使用JSON数据集是不用改变区域和数据参考的。JSON的工作方式与XML数据集相似,例如过滤(filtering)和缓存(caching),所以在本文中不再讨论,关于基础数据集功能请参考 Data Set概述

    例子通过两种方法来使用JSON, JSON范例

    本文将讨论JSON不同于数据集的特性。

    什么是JSON?

    类似 XML, JSON 用一个重复的数据结构来传输数据,下面是一个简单的范例:

    {
    "firstName": "Jason",
    "lastName": "Jones",
    "address": {
    "city": "San Francisco, CA",
    "zip": 94121,
    "address": "444 Columbus Ave"
    },
    "email": [
    "jason@sf.com",
    "sjones@adobe.com"
    ]
    }

    关于JSON的更多信息可以查看 JSON 入门. JSON自身允许组合嵌套结构。 (这就是为什么我们要在嵌套的数据集解决方案之后讲)

    创建JSON数据集

    JSON的使用与使用XML数据集,只有少量差异。

    首先,你需要 'SpryJSONDataSet.js'. 'SpryData.js', 其中包含区域操作代码、过滤(filtering)和其他功能,这是必须的,对于JSON数据集来说不需要'xpath.js'。

    <script src="SpryData.js" language="javascript" type="text/javascript"></script>
    <script src="SpryJSONDataSet.js" language="javascript" type="text/javascript"></script>

    对于数据集,你需要指定一个包含JSON数据的文件并且指定一个数据节点作为数据集的起点。

    一个典型的JSON数据集结构如下:

    var dsExample4 = new Spry.Data.JSONDataSet("../../data/json/object-02.js", { path: "batters.batter" });

    JSON文件参考在这里获取

    这个结构开始于一个变量名,这个变量名就是数据集的名字,这个名字可以是你想要的任何合法的名字。多个数据集的名字之间必须唯一。

    var dsExample4

    创建一个新的对象:

    • new Spry.Data.JSONDataSet

    注意,Javascript是大小写敏感的。

    接下来,指定包含JSON信息的文件路径:

    • new Spry.Data.JSONDataSet("../../data/json/object-02.js");

    If it is a path to a file, wrap it in quotes as shown. Variables and Spry data references can also be used here, without quotes.

    创建一个数据集使用的最少步骤。

    路径和子路径

    如果你一在JSON数据中指定一个部分,则可以指定一个路径。这是一个可选参数,需要被包含在{}中。

    • { path: "node.sub node" }

    注意: JSON用点来指示路径。就象XML和XPATH中用 '/'指示路径一样 。

    另一个范例:

    {
    "firstName": "Jason",
    "lastName": "Jones",
    "address": {
    "city": "San Francisco, CA",
    "zip": 94121,
    "address": "444 Columbus Ave"
    },
    "email": [
    "jason@sf.com",
    "sjones@adobe.com"
    ]
    }

    如果你想获得文件中的"city"节点,因该这样写:

    var ds1 = new Spry.Data.JSONDataSet("myfile.js", {path: "address.city"});

    子路径

    因为一些JSON文件很复杂,JSON数据集通过另一种高级的方式进行平面化(flattening)指定。

    一些JSON格式用嵌套结构,例如下面的 "image"和 "thumbnail"属性:

    {
    "id": "0001",
    "type": "donut",
    "name": "Cake",
    "image":
    {
    "url": "images/0001.jpg",
    "width": 200,
    "height": 200
    },
    "thumbnail":
    {
    "url": "images/thumbnails/0001.jpg",
    "width": 32,
    "height": 32
    }
    }
    

    有时希望数据集中的结构能平面化(flatten)的象数据列一样,当平面化顶级JSON对象时你可以用"subPaths"选项来告诉JSON数据集来包含嵌套的结构,或通过"path" 选项指定数据。在范例中因为我们没有指定 "path" 选项, JSON数据集讲尝试仅平面化顶级对象。包含我们想要的 "image"嵌套结, 我们只需要简单的指定"image".

    var dsExample6 = new Spry.Data.JSONDataSet("../../data/json/object-03.js", { subPaths: "image" });
    

    Spry将提取"image"节点信息,并拉到顶级节点,因此在这个数据集中包含子节点信息,现在,"image"子节点可以用'image.'加子节点名字来引用。

    {id} {type} {name} {image.width} {image.height} {image.url}

    Spry支持多个子路径,在上面的例子中,有可能用到 'thumbnail' 信息,可以通过指定 'thumbnail' 子路径,将其提取到数据集。

    var dsExample7 = new Spry.Data.JSONDataSet("../../data/json/object-03.js", { subPaths: [ "image", "thumbnail" ] });

    注意多个子路径其实是一个字符串数组,包含在[]中,现在数据引用看起来是这样的:

    {id} {type} {name} {image.width} {image.height} {image.url} {thumbnail.width} {thumbnail.height} {thumbnail.url}

    使用数据集功能

    作为一个Spry数据集, JSON数据集拥有所有基本数据集的功能。

    例如:关闭缓存并使用唯一(distinct):

    var ds1 = new Spry.Data.JSONDataSet("myfile.js", {path: "address.city", useCache:false, distinctOnLoad:true});

    Spry的目标之一是区域独立于数据集类型。区域可以在JSON, XML 和 HTML 数据集之间互换。


    Copyright © 2007. Adobe Systems Incorporated. All rights reserved.
    汉化:booolee.cnblogs.com

  • 相关阅读:
    B1028人口普查
    B1004成绩排名
    B1041考试座位号
    A1009 Product of Polynomials多项式相乘
    A1002 A+B for Polynomials 多项式相加
    B1010一元多项式求导
    A1065 A+Band C(64 bit)
    A1046 Shortest Distance 最短路径
    排序
    windows 平台使用wireshark命令行抓包
  • 原文地址:https://www.cnblogs.com/booolee/p/765408.html
Copyright © 2011-2022 走看看