• Json


    JSON:Java Script Object Notation(JavaScript对象表示法)
    JSON是存储和交换文本信息的语法。类似XML。
    JSON比XML更小、更快、更容易解析。
     
    JSON 实例
    {
    "sites": [
    { "name":"MrZhong" , "url":"cn.Mr.Neng" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
    ]
    }
    //这个sites对象时包含3个站点记录(对象)的数组。
    目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。
     
    JSON - 转换为 JavaScript 对象
    JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。
    由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。
     
    //代码演示
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Json</title>
    </head>
    <body>
    <h2>JavaScript 创建 JSON 对象</h2>
    <p>
    网站名称: <span id="jname"></span><br />
    网站地址: <span id="jurl"></span><br />
    网站 slogan: <span id="jslogan"></span><br />
    </p>
    <script>
    var JSONObject= {
    "name":"MrZhong",
    "url":"cn.Mr.Neng",
    "slogan":"学的不仅是技术,更是梦想!"
    };
    //document.getElementById("jname"):获得id为jname
    //.innerHTML:给他文本
    //=JSONObject.name:JSONObject中的name属性
    document.getElementById("jname").innerHTML=JSONObject.name
    document.getElementById("jurl").innerHTML=JSONObject.url
    document.getElementById("jslogan").innerHTML=JSONObject.slogan
    </script>
     
    </body>
    </html>
     
    //运行结果
    JavaScript 创建 JSON 对象
    网站名称: 菜鸟教程
    网站地址: www.runoob.com
    网站 slogan: 学的不仅是技术,更是梦想!
     
    与 XML 相同之处
    • JSON 是纯文本
    • JSON 具有"自我描述性"(人类可读)
    • JSON 具有层级结构(值中存在值)
    • JSON 可通过 JavaScript 进行解析
    • JSON 数据可使用 AJAX 进行传输

    与 XML 不同之处
    • 没有结束标签
    • 更短
    • 读写的速度更快
    • 能够使用内建的 JavaScript eval() 方法进行解析
    • 使用数组
    • 不使用保留字
     
    为什么使用 JSON?
    对于 AJAX 应用程序来说,JSON 比 XML 更快更易使用:
    使用 XML
    • 读取 XML 文档
    • 使用 XML DOM 来循环遍历文档
    • 读取值并存储在变量中
    使用 JSON
    • 读取 JSON 字符串
    • 用 eval() 处理 JSON 字符串
     
    JSON 语法

    JSON 语法是 JavaScript 语法的子集。

    JSON 语法规则
    JSON 语法是 JavaScript 对象表示语法的子集。
    • 数据在名称/值对中
    • 数据由逗号分隔
    • 大括号保存对象
    • 中括号保存数组
     
    JSON 值
    JSON 值可以是:
    • 数字(整数或浮点数)
    • 字符串(在双引号中)
    • 逻辑值(true 或 false)
    • 数组(在中括号中)
    • 对象(在大括号中)
    • null
     
    JSON 数字
    JSON 数字可以是整型或者浮点型:
    { "age":30 }

    JSON 对象
    JSON 对象在大括号({})中书写:
    对象可以包含多个名称/值对:
    { "name":"MrNeng" , "url":"cn.Mr.Neng" }
    这一点也容易理解,与这条 JavaScript 语句等价:
    name = "MrNeng" url = "cn.Mr.Neng"
    JSON 布尔值
    JSON 布尔值可以是 true 或者 false:
    { "flag":true }

    JSON null
    JSON 可以设置 null 值:
    { "haha":null }
     
    JSON 使用 JavaScript 语法
    因为 JSON 使用 JavaScript 语法,所以无需额外的软件就能处理 JavaScript 中的 JSON。
    通过 JavaScript,您可以创建一个对象数组,并像这样进行赋值:
    实例
    var sites = [
    { "name":"haha" , "url":"www.runoob.com" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
    ];
    可以像这样访问 JavaScript 对象数组中的第一项(索引从 0 开始):
    sites[0].name;
    返回的内容是:
    runoob
    可以像这样修改数据:
    sites[0].name="哈哈";
     
    //代码演示
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>cn.Mr.Neng</title>
    </head>
    <body>
    <h2>JavaScript 创建 JSON 对象</h2>
    <p>第一个网站名称: <span id="name1"></span></p>
    <p>第一个网站修改后的名称: <span id="name2"></span></p>
    <script>
    var sites = [
    { "name":"MrZhong" , "url":"cn.Mr.Neng" },
    { "name":"google" , "url":"www.google.com" },
    { "name":"微博" , "url":"www.weibo.com" }
    ];
    document.getElementById("name1").innerHTML=sites[0].name;
    // 修改网站名称
    sites[0].name="哈哈";
    document.getElementById("name2").innerHTML=sites[0].name;
    </script>
    </body>
    </html>
     
    //运行结果
    JavaScript 创建 JSON 对象
    第一个网站名称: MrZhong
    第一个网站修改后的名称: 哈哈
     
    //代码演示
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>cn.Mr.Neng</title>
    </head>
    <body>
     
    <p>使用 for-in 来循环对象的属性:</p>
    <h1>循环对象的属性</h1>
    <h1>循环对象的属性值</h1>
    <p id="demo"></p>
    <p id="haha"></p>
     
    <script>
     
    var myObj = { "name":"MrZhong", "alexa":10000, "site":null };
    for (x in myObj) {
    document.getElementById("demo").innerHTML += x + "<br>";
    }
    for(x in myObj){
    document.getElementById("demo").innerHTML +=myObj[x] +"<br>"
    }
     
     
    var hehe={"name":"MrZhong","网址":"cn.Mr.Neng","size":"100M"}
    for(a in hehe){
    document.getElementById("haha").innerHTML += hehe[a]+"<br>";
    }
    </script>
     
    </body>
    </html>
     
     
    //运行结果
    使用 for-in 来循环对象的属性:
    循环对象的属性
    循环对象的属性值
    name
    alexa
    site
    MrZhong
    10000
    null
    MrZhong
    cn.Mr.Neng
    100M
     
    有几种后端数据封装成json数据格式
    1.List集合转换成json代码
     List list = new ArrayList();
     list.add( “first” );
     list.add( “second” );
     JSONArray jsonArray = JSONArray.fromObject( list );
    2. Map集合转换成json代码
     Map map = new HashMap();
     map.put(“name”, “json”);
     map.put(“bool”, Boolean.TRUE);
     map.put(“int”, new Integer(1));
     map.put(“arr”, new String[] { “a”, “b” });
     map.put(“func”, “function(i){ return this.arr[i]; }”);
     JSONObject json = JSONObject.fromObject(map);
    3.Bean转换成json代码
      JSONObject jsonObject = JSONObject.fromObject(new JsonBean());
    4. 数组转换成json代码
     boolean[] boolArray = new boolean[] { true, false, true };
      JSONArray jsonArray1 = JSONArray.fromObject(boolArray);
    5. 一般数据转换成json代码
    JSONArray jsonArray =JSONArray.fromObject([‘json’,’is’,’easy’]” );
    6.用json put方法
    JSONObject json=new JSONObject();
    json.put(“name”, “张三”);
    json.put(“age”, 18);
    绊倒我的人我让他永远起不来 扶起我的人我让他永远不会倒 混社会不管你有多努力,到最后都是以成败论英雄!
  • 相关阅读:
    FlannBasedMatcher 立体匹配
    语义分割
    CNN
    grabcut 分割 Rect
    十六、scrapy_redis(分布式爬虫)
    证监会处罚公告爬取
    十四、认识scrapy的debug信息
    十三、scrapy的Item.py
    十二、scrapy中实现翻页请求
    爬取斗鱼房间的信息
  • 原文地址:https://www.cnblogs.com/MrNeng/p/9323593.html
Copyright © 2020-2023  润新知