zoukankan      html  css  js  c++  java
  • To Noob Json是什么鬼?

    转载请注明出处王亟亟的大牛之路
    供应商A:那我们数据怎么交互啊?HTTP吧?那内容呢?JSON?XML?
    小菜鸟B:JSON什么鬼?
    为了菜鸟们避免以上情况楼主写一发JSON的博文,废话不多!開始!


    先梳理下概念
    1.JSON是什么
    JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
    JSON 是轻量级的文本数据交换格式
    JSON 独立于语言 *
    JSON 具有自我描写叙述性,更易理解
    JSON 使用 Javascript语法来描写叙述数据对象,可是 JSON 仍然独立于语言和平台。

    JSON 解析器和 JSON 库支持很多不同的编程语言。

    眼下非常多的动态(PHP,JSP。.NET)编程语言都支持JSON。


    2.JSON和XML的同样点以及不同点
    同样:
    JSON 是纯文本
    JSON 具有”自我描写叙述性”(人类可读)
    JSON 具有层级结构(值中存在值)
    JSON 可通过 JavaScript 进行解析
    JSON 数据可使用 AJAX 进行传输
    不同:
    没有结束标签
    更短
    读写的速度更快
    可以使用内建的 JavaScript eval() 方法进行解析
    使用数组
    不使用保留字

    样例:
    简单的JSON对象

    {
        "name": "wjj"
    }
    简单的样例。这是一个叫name的json对象,属性是字符串wjj。
    {
        "action": 123
    }
    我们办了变,他如今有一个属性。只是是int型的。值是123.
    
    在我们人工读的时候,非常轻易就能解读那一段json字符串

    JSON的数据类型
    JSON 值可以是:

    数字(整数或浮点数)
    字符串(在双引號中)
    逻辑值(true 或 false)
    数组(在方括号里)
    对象(在花括号里)
    null
    

    实例
    要被解析的json字符串

    {
        "phone": [
            "1000000",
            "2000000"
        ],
        "name": "wjj",
        "age": 20,
        "address": {
            "country": "china",
            "province": "shanghai"
        },
        "married": false
    }

    上面这段json字符串简单的说明了一个人的一些属性,各种类型的数据一目了然,那我们来试着写写这段JSON.

    try {  
        // 首先最外层是{},是创建一个对象  
        JSONObject person = new JSONObject();  
        // 第一个键phone的值是数组。所以须要创建数组对象  
        JSONArray phone = new JSONArray();  
        phone.put("1000000").put("2000000");  
        person.put("phone", phone);  
    
        person.put("name", "wjj");  
        person.put("age", 20);  
        // 键address的值是对象,所以又要创建一个对象  
        JSONObject address = new JSONObject();  
        address.put("country", "china");  
        address.put("province", "shanghai");  
        person.put("address", address);    
        person.put("married", false);  
    } catch (JSONException ex) {  
        // 键为null或使用json不支持的数字格式(NaN, infinities)  
        throw new RuntimeException(ex);  
    }  

    然后 再试着拆这段JSON

    try {
    
        JSONObject jsonObject = new JSONObject(jsonData);
        person.phoneArray=jsonObject.optJSONArray("phone ");
        person.name=jsonObject.optString("name");
        person.age=jsonObject.optInt("age");
        JSONArray jsonObject1=jsonObject.opJSONArray("address");
        person.country=jsonObject1.opString("country");
        person.province=jsonObject1.opString("province");
        person.married=jsonObject.opBoolean("married"); 
         } catch (JSONException e) {
                e.printStackTrace();
            }

    就是如此。一层一层拨开,逻辑非常清晰哦。

    再推荐一些方便平时读JSON的地址 :
    http://www.bejson.com/
    http://json.cn/

    今天就到这里。谢谢大家!

  • 相关阅读:
    关于.net core https支持的整理
    数据库动态字段 个人设计的思考
    解决PowerDesigner中table的code长度限制和column的code长度限制
    Git内网服务器搭建
    解决.net core读取appSetting.json文件中文字符乱码
    excel 转换成pdf 总结
    .net生成荣誉证书
    Adobe Acrobat DC 安装
    swagger生成错误问题 汇总解决
    svn或git 提交文件排除
  • 原文地址:https://www.cnblogs.com/yxwkf/p/5354574.html
Copyright © 2011-2022 走看看