官方解释:

JSON的全称是”JavaScript Object Notation”,单单从字面上的理解就是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。

理解:

JSON所谓的基于文本,也就是说它仅仅依靠文本来表示,不像Http协议,什么超文本、又有音频视频等,所以JSON是一种轻量级的数据。

独立于语言:JSON数据是跨平台的,通用的,不是说只可以在JavaScript中解析,它可以在任意支持的语言上解析,如Java、C#等等。

JSON的两种结构:对象和数组

1、JSON对象:以“{”开始,以“}”结束,里面则是一系列的键(key)值(value)对,键和值用“:”分开,每对键值对之间用“,”分开。参考以下语法结构:

{key1:value1,key2:value2,key3:value3...}

其中键(key)是字符串,而值(value)可以是字符串,数值,true,false,null,对象或数组,也就是说某个键(key)的值(value)可以是一个数组,数组里面又是一些JSON对象,这种表示稍微复杂一些,但是参照这些理解可以很容易分辨出来。

2、JSON数组:以”[”开始,”]”结束,如同程序语言一样,例如C#,Button[] btnArray,则BtnArray是一个Button类型的数组,里面就存放Button类型的对象,那么JSON数组也一样,里面存放的也是JSON对象,参考下面语法结构:

[{key1:value1,key2:value2},{key3:value3,key4:value4},{key5:value5,key6:value6},{key7:value7,key8:value8}]

这里就有4个JSON对象,对象与对象之间用“,”分开。

JSON字符串与JSON对象:

JSON字符串,就是要满足JSON格式要求的字符串,例如:String str = "{"StudentID":100,"Name":"Me","Hometown":"China"}";

JSON对象,指符合json格式要求的对象,例如C#中 JObject json = JObject.Parse("{"StudentID":100,"Name":"Me","Hometown":"China"}");

JSON数据的解析:

不同程序语言的解析稍微有点区别,不过大体是一样的,参考下面简单的例子:

C#中:JObject json = JObject.Parse("{"StudentID":100,"Name":"Me","Hometown":"China"}");

string studentID = (string)json["StudentID"];

Java中: JSONObject json = new JSONObject("{"StudentID":100,"Name":"Me","Hometown":"China"}");

String studentID = json.getString("StudentID");

假如某个value是一个JSON数组,那么先按照上面的方法获取value值,再把值传递给JSONArray,根据JSONArray下标取得对应的JSON对象即可,

下标与C#、Java数组下标一样,从0开始。

以上是个人对应JSON的理解,若存在错误,请无私指出,十分感谢!

JSON的理解的更多相关文章

  1. 跨域获取json一些理解[腾讯电商数据的拉取方式]

    如何跨域获取json数据源?我们都知道要有callback,具体callback是如何工作的呢?如果服务器端不接收callback,我们是不是就没有办法处理了呢?读完本文后相信你会有一个大体的了解. ...

  2. eval及json的理解

    一,案例一 <br><br> 复制代码 var str = '{"name": "hanzichi", "age": ...

  3. 对package.json的理解和学习

    一.初步理解 1. npm安装package.json时  直接转到当前项目目录下用命令npm install 或npm install --save-dev安装即可,自动将package.json中 ...

  4. 对json的理解?

    回答一: a.JSON对象:以 ”{“ 开始,以 ”}” 结束,里面则是一系列的键(key)值(value)对,键和值用 ”:” 分开,每对键值对之间用 ”,” 分开.参考以下语法: {key1:va ...

  5. json再理解

    一.Json的简单介绍 从结构上看,所有的数据最终都可以分成三种类型: 第一种类型是scalar(标量),也就是一个单独的string(字符串)或数字(numbers),比如“北京”这个单独的词. 第 ...

  6. JSON简单理解

    JSON 与 JS 对象的关系 很多人搞不清楚 JSON 和 Js 对象的关系,甚至连谁是谁都不清楚.其实,可以这么理解: JSON 是 JS 对象的字符串表示法,它使用文本表示一个 JS 对象的信息 ...

  7. json的理解及读取

    一: JSON 语法是 JavaScript 对象表示语法的子集,其语法规则如下: 数据在键值对中 数据由逗号分隔 花括号保存对象:{} 方括号保存数组:[] 如:[{"name" ...

  8. Json格式理解

    json格式中共有三个重要符号"[","{",":" 中括号和花括号的唯一区别就是:中括号不需要key,花括号必须有key

  9. JSON数据理解

    话说JSON数据平常用的确实挺多的,但是基本上只知道怎么用,对其一些细节并没有整理过,今儿趁着下午有点空,坐下来,学习整理下,并分享出来. 对于JSON,首先它只是一种数据格式,并非一种语言,虽然和j ...

随机推荐

  1. Uva821-Floyd

    计算所有页面的平均距离. 用floyd求距离,再求平均 #include <algorithm> #include <cstring> #include <ctype.h ...

  2. day9 集合基础命令

    集合的创建 s = set("hello") print(s) s = set({","alex","sb"}) print(s) ...

  3. 13 Zabbix Item类型之Zabbix ODBC类型

    点击返回:自学Zabbix之路 13 Zabbix Item类型之Zabbix ODBC类型 ODBC是C语言开发的.用于访问数据库的中间件接口 . zabbix支持查询任何ODBC支持的数据库.za ...

  4. anaconda python no module named 'past'的解决方法

    如上图所示,错误就是:No module named 'past' 解决办法不是下载‘past’包,而是下载‘future’包: 我是安装了anaconda集成环境,python的单独环境应该也是同样 ...

  5. python数据类型(二)

    跟着慕课网练习的,一些简单的知识点如下

  6. 即将上线的Hive服务器面临的一系列填坑笔记

    即将上线的Spark服务器面临的一系列填坑笔记 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.18/10/19 16:36:31 WARN metastore.ObjectSt ...

  7. Windows计划任务提示 0xE0434352 错误

    写了一个计划任务每周去跑一个程序,但是并没有跑,报错是 0xE0434352,应该是没有找到路径(计划任务这么菜的吗)... 解决办法:双击启动程序 写上你当前程序的起始路径 然后在运行一下,就成功了

  8. 设计模式---对象创建模式之工厂方法模式(Factory Method)

    前提:“对象创建”模式 通过“对象创建”模式绕开new,来避免对象创建(new)过程中所导致的紧耦合(依赖具体类),从而支持对象创建的稳定.它是接口抽象之后的第一步工作. 典型模式(表现最为突出) 工 ...

  9. ivew实现table的编辑保存追加删除

    ivew实现table的编辑 例子1 例子2

  10. servlet dispatcher .forward(request, response); 进入其它servlet【原】

    dispatcher .forward(request, response); 进入其它servlet 假如我们的web.xml配置如下 <servlet> <servlet-nam ...