【简介】 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对象

【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);
}

得到

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

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

【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());
	}
}

于是我们得到