【简介】
Json是一串字符串,使用特定的符号进行标注。
1、{}表示对象
2、[]表示数组
3、""内是属性或值
4、:表示后者是前者的值(可以是字符串、数字、也可以是另外的数组、另外的对象) 。

【1、Java创建一个简单的Json】

/*创建一个简单的
     * Json字符串
     */
    public static String createJsonStr(String key, Object value) {
                JSONObject jsonObject = new JSONObject();
                jsonObject.put(key, value);
                return jsonObject.toString();
    }

    public static void main(String[] args) {
        String jsonstr = createJsonStr("red","ant");
        System.err.println("Json字符串"+jsonstr);
    }

我们得到一个Json对象

json

【2、JSONObject与JSONArray】
JSONObject,是一个Json对象,使用的是大括号{ }。
JSONArray,是一个Json数组,使用[],数组里面的项也是Json键值对格式的。
JSONObject对象中添加的是键值对,使用Json.put("key", "value");
JSONArray中添加的是Json对象,使用JsonArray.add(Json)。
也就是说

/*
 * 创建一个简单的Json
 */
public static JSONObject createJson(String key, Object value) {
    JSONObject jsonObject = new JSONObject();
    jsonObject.put(key, value);
    return jsonObject;
}

public static void main(String[] args) {
    JSONArray jsonarry = new JSONArray();
    jsonarry.add(createJson("red","ant"));
    jsonarry.add("redAnt20190715");
    JSONObject jsonObject = new JSONObject();
    jsonObject.put("redant", jsonarry);
    jsonObject.put("red_ant", createJson("2019","0715"));
    System.err.println(jsonarry);
    System.err.println(jsonObject);
}

得到

json

也就是说,原理很简单。但组合起来,就是个很庞大的数据。但是知道其中的组成原理,又可以一眼看穿整个结构。
例如,【4】。

【3、JSONObject与Map】
上面说JsonObject是一个键值对的关系对象,那么提到键值对我们首先想到的是Map数组。这两有什么区别呢?
Map中的键值对用等号=分开,Json中的键值对中间使用冒号:分开。
这么看来,Json是一种特殊形式的Map,或者Map是一种特殊形式的Json。怎么形容完全取决于这两谁出生的早,但是依照编译器来说Json是一种特殊形式的Map。因为

json

【4、JSONObject与JSONArray组合出的例子】

package com.css.java.learning.json;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JsonExp {
    /**我们有一个手机大品类
     * 该品类下分各个厂商的手机
     * 手机的属性有
     * 像素,图片,cpu等等
     * 用Json表示
     */
    public static JSONObject createTestJson() {
        //首先我们分析最外围是一个Jsonobject,放置一个手机的大品类
        JSONObject jobject = new JSONObject();
        //下分各个厂商,说明是一个数组,该数组存放各个厂商
        JSONArray jsarry = new JSONArray();
        {   //某某手机
            JSONObject jobject1 = new JSONObject();
            jobject1.put("pinpai品牌", "3123131qeqw");
            jobject1.put("像素", "3131qwdwqd");
            jobject1.put("cpu", "313asdas");
            jobject1.put("电池", "313dd");
            jobject1.put("图片", "adsdd1223");
            jobject1.put("生产日期", "31adada");
            jobject1.put("价格", "dad1313");
            jsarry.add(jobject1);
            //另一个手机
            JSONObject jobject2 = new JSONObject();
            jobject2.put("pinpai品牌", "13213");
            jobject2.put("像素", "3wqewqeq");
            jobject2.put("cpu", "3131dqa");
            jobject2.put("电池", "1312dd");
            jobject2.put("图片", "313dd");
            jobject2.put("生产日期", "ddaddad1");
            jobject2.put("价格", "3131xdad");
            jsarry.add(jobject2);
        }
        jobject.put("dapinlei大品类", jsarry);
        return jobject;
    }

    public static void main(String[] args) {
        System.err.println(createTestJson());
    }
}

于是我们得到

json_第1张图片