zoukankan      html  css  js  c++  java
  • JSON笔记

    JSPN示例1:

    { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }

    JSPN示例2:

    {
        "name": "张三",
        "ourid": {
            "id": "1",
            "name": "李四"
        },
        "uuyr": "8"
    }

    JSPN示例3:

    { "people": [

    { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

    { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},

    { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

    ]}

    这不难理解。在这个示例中,只有一个名为 people的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):

    { "programmers": [

    { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

    { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },

    { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

    ],

    "authors": [

    { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },

    { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },

    { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }

    ],

    "musicians": [

    { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },

    { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }

    ] }

    【格式应用】

    将 JSON 数据赋值给变量

    例如,可以创建一个新的 JavaScript 变量,然后将 JSON 格式的数据字符串直接赋值给它:

    var people = { "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

    { "firstName": "Jason", "lastName":"Hunter", "email": "bbbb" },

    { "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

    ],

    "authors": [

    { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },

    { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },

    { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }

    ],

    "musicians": [

    { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },

    { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }

    ] }

    访问数据

    尽管看起来不明显,但是上面的长字符串实际上只是一个数组;将这个数组放进 JavaScript 变量之后,就可以很轻松地访问它。实际上,只需用点号表示法来表示数组元素。所以,要想访问 programmers 列表的第一个条目的姓氏,只需在 JavaScript 中使用下面这样的代码:

    people.programmers[0].lastName;

    注意,数组索引是从零开始的。所以,这行代码首先访问 people变量中的数据;然后移动到称为 programmers的条目,再移动到第一个记录([0]);最后,访问 lastName键的值。结果是字符串值 “McLaughlin”。

    下面是使用同一变量的几个示例。

    people.authors[1].genre // Value is "fantasy"

    people.musicians[3].lastName // Undefined. This refers to the fourth entry, and there isn't one

    people.programmers[2].firstName // Value is "Elliotte"

    利用这样的语法,可以处理任何 JSON 格式的数据,而不需要使用任何额外的 JavaScript 工具包或 API。

    改 JSON 数据

    正如可以用点号和括号访问数据,也可以按照同样的方式轻松地修改数据:

    people.musicians[1].lastName = "Rachmaninov";

    在将字符串转换为 JavaScript 对象之后,就可以像这样修改变量中的数据。

    换回字符串

    当然,如果不能轻松地将对象转换回本文提到的文本格式,那么所有数据修改都没有太大的价值。在 JavaScript 中这种转换也很简单:

    String newJSONtext = people.toJSONString();

    这样就行了!现在就获得了一个可以在任何地方使用的文本字符串,例如,可以将它用作 Ajax 应用程序中的请求字符串。

    更重要的是,可以将任何JavaScript 对象转换为 JSON 文本。并非只能处理原来用 JSON 字符串赋值的变量。为了对名为 myObject的对象进行转换,只需执行相同形式的命令:

    String myObjectInJSON = myObject.toJSONString();

     概念比较

    【JSON和XML的比较】

    实例比较

    用XML表示中国部分省市数据如下:

    <?xml version="1.0" encoding="utf-8"?>

    <country>

        <name>中国</name>

        <province>

            <name>黑龙江</name>

         <cities>

                <city>哈尔滨</city>

                <city>大庆</city>

            </cities>

        </province>

        <province>

            <name>广东</name>

            <cities>

                <city>广州</city>

                <city>深圳</city>

                <city>珠海</city>

            </cities>

        </province>

    </country>

    用JSON表示如下:

    {

    {name:"中国", province:[ { name:"黑龙江", cities:{ city:["哈尔滨","大庆"] },

    {name:"广东", cities:{ city:["广州","深圳","珠海"] } 

    }

  • 相关阅读:
    单例模式-静态内部类方式
    单例模式-懒汉式(双重检验)
    单例模式-懒汉式
    sonarqube7.2版本web api简析
    sonarqube集成maven插件,上传扫描结果
    sonarQube快速入门7.2版本下载pmd插件,并设置只使用pmd规则
    gradle使用dokka插件出现Exception while loading package-list from ExternalDocumentationLinkImp
    让linux后解压的资源权限就是777(工作笔记)
    java并发 无锁cas的最简单理解
    java 必须要懂点的包 今日研究小结
  • 原文地址:https://www.cnblogs.com/renpei/p/7119626.html
Copyright © 2011-2022 走看看