JSON 语法是 JavaScript 对象表示语法的子集。
数据在键值对中;
键值对由冒号分隔;
数据由逗号分隔;
花括号保存对象;
方括号保存数组;

示例:
{
    "people":[
        {"firstName":"a1","lastName":"b1","email":"c1"},
        {"firstName":"a2","lastName":"b2","email":"c2"},
        {"firstName":"a3","lastName":"b3","email":"c3"}
    ]
}
其中
"firstName":"a1"表示一个数据,firstName是键,a1是值。一个对象中键必须唯一;
{"firstName":"a1","lastName":"b1","email":"c1"}表示一个对象,对象中的数据应该没有关系,是组成一个对象的不同元素;
"people":[...]表示一个数组,数组中元素应该表示同一类对象。

JSONObject与JSONArray区别
区别在于JSONObject是一个{}包裹起来的一个对象(Object),而JSONArray则是[]包裹起来的一个数组(Array),JSONObjec有键名,JSONArray没有。
解析的时候JSONObject是JSONObject.getString("message"),JSONArray是JSONArray.getString(0),0表示取第一个值,1表示取第二个值。

在Java中使用JSON

1、导入JSON-lib及其依赖包;

2、代码中引入
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONArray;
获取【下载地址】 

3、创建和解析JSON对象


程序运行结果:

创建JSONObject
{"ck":"cv","bk":"bv","ak":"av"}
==========万恶的分隔符==========

创建JSONArray
["a","b","c",1,true]
==========万恶的分隔符==========

键相同时,值会覆盖原有的值
{"ck":"cv","bk":"bv","ak":"ak"}
==========万恶的分隔符==========

元素相同,不会覆盖原有的值;值为null时同样可以添加,注意null没有双引号
["a","b","c",1,true,"a",null]
==========万恶的分隔符==========