To Noob Json是什么鬼?

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/

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115465.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • pycharm输入不了中文_pycharm连接服务器ssh

    pycharm输入不了中文_pycharm连接服务器ssh一、点击【File】—【Setting】—【Editor】—【FileEncoding】页面,设置global和projectencoding为UTF-8,然后点击Apply。二、点击【File】—【Setting】—【Editor】—【FileandCodeTemplates】,点击右边的【pythonscript】,在编辑框中输入:#-*-coding:utf-8-*-,保存设置之后,关闭pycharm.三、下载最新的搜狗输入法安装即可,再打开p

  • 数据库优化 – SQL优化[通俗易懂]

    数据库优化 – SQL优化[通俗易懂]以实际SQL入手,带你一步一步走上SQL优化之路!

  • Android RSA 加密

    Android RSA 加密没想到被Android里的RSA加密折腾了几个小时,主要还是自己对RSA加密的原理不了解,然后网上相关的资料也少。使用AndroidUtilCode工具类中的`EncryptUtils.encryptRSA()`加密后的数据怎么也不对,后来自己找了段加密代码,才总算是可以了,这里记录一下。首先我们需要先生成一个RSA的公钥和私钥。

  • w7812三端稳压电路图_acwing是什么

    w7812三端稳压电路图_acwing是什么达达是来自异世界的魔女,她在漫无目的地四处漂流的时候,遇到了善良的少女翰翰,从而被收留在地球上。翰翰的家里有一辆飞行车。有一天飞行车的电路板突然出现了故障,导致无法启动。电路板的整体结构是一个 R 行 C 列的网格(R,C≤500),如下图所示。每个格点都是电线的接点,每个格子都包含一个电子元件。电子元件的主要部分是一个可旋转的、连接一条对角线上的两个接点的短电缆。在旋转之后,它就可以连接另一条对角线的两个接点。电路板左上角的接点接入直流电源,右下角的接点接入飞行车的发动装置。达达发现因为

  • python输出图像通道数_python查看图片通道数

    python输出图像通道数_python查看图片通道数如果你只想获得图像的行数和列数,行数代表图像的高,列数代表图像的宽。如下src=cv.imread(“xxxxx”)读取图片image=src.shape获取图片宽高及通道数rows=image[0]cols=image[1]src.shape返回值为:(rows,cols,通道数)所以image[3]就是通道数tongdao_nums=image[3]…

  • 哥哥[通俗易懂]

    哥哥[通俗易懂]哥哥

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号