java中使用json(org.json)

java中使用json需要引入第三方json项目

json官网: http://json.org

json官网页面往下拉,可以找到Java板块,该板块列出了官方推荐的第三方json项目


之前开发用的Json-lib,但今天发现org.json更简便(Json-lib依赖的jar较多)

本文将介绍org.json的用法

1下载org.json

org.json的官网: http://www.json.org/java/index.html。点击官网页面的”Free source code is available”即可转到org.jsongithub的源码页,点击页面右侧的”Download ZIP”,下载”JSON-java-master.zip”文件,解压该文件。Eclipse中新建package,命名”org.json”,然后将”JSON-java-master”里的文件拷到”org.json”,即可在项目使用json

也可以将org.json打成jar包,方便以后使用。右键org.json文件ExportJavaJAR file,点”Next”,选中org.json、org.json.zip文件夹,然后输入jar文件的输出路径

2. json的用法

2.1 初始化json对象

json常用的对象是JSONObject、JSONArray

package TestJson;

import org.json.JSONArray;
import org.json.JSONObject;

public class TestJson01 {
	public static void main(String[] args) {
		//初始化JSONObject 方法一
		JSONObject jsonObject1 = new JSONObject();
		jsonObject1.put("Name", "Tom");
		jsonObject1.put("age", "11");
		
		//初始化JSONObject 方法二
		JSONObject jsonObject2 = new JSONObject("{'Name':'Tom','age':'11'}");
		
		//初始化JSONArray 方法一
		JSONArray jsonArray1 = new JSONArray();
		jsonArray1.put("abc");
		jsonArray1.put("xyz");
		
		//初始化JSONArray 方法二
		JSONArray jsonArray2 = new JSONArray("['abc','xyz']");
		
		System.out.println("jsonObject1:" + "\r" + jsonObject1.toString());
		System.out.println("jsonObject2:" + "\r" + jsonObject2.toString());
		System.out.println("jsonArray1:" + "\r" + jsonArray1.toString());
		System.out.println("jsonArray2:" + "\r" + jsonArray2.toString());
		
	}
}

Output

jsonObject1:
{"Name":"Tom","age":"11"}
jsonObject2:
{"Name":"Tom","age":"11"}
jsonArray1:
["abc","xyz"]
jsonArray2:
["abc","xyz"]

2.2 JSONObject、JSONArray相互嵌套

package TestJson;

import org.json.JSONArray;
import org.json.JSONObject;

public class TestJson02 {
	public static void main(String[] args) {
		JSONObject jsonObject = new JSONObject("{'Name':'Tom','age':'11'}");
		JSONArray jsonArray = new JSONArray("['abc','xyz']");
		
		//JSONObject内嵌JSONObject
		JSONObject jsonObject1 = new JSONObject();
		jsonObject1.put("object1", jsonObject);
		jsonObject1.put("object2", jsonObject);
		
		//JSONObject内嵌JSONArray
		JSONObject jsonObject2 = new JSONObject();
		jsonObject2.put("JSONArray1", jsonArray);
		jsonObject2.put("JSONArray2", jsonArray);
		
		//JSONArray内嵌JSONArray
		JSONArray jsonArray1 = new JSONArray();
		jsonArray1.put(jsonArray);
		jsonArray1.put(jsonArray);
		
		//JSONArray内嵌JSONObject
		JSONArray jsonArray2 = new JSONArray();
		jsonArray2.put(jsonObject);
		jsonArray2.put(jsonObject);
		
		System.out.println("JSONObject内嵌JSONObject:" + "\r" + jsonObject1.toString());
		System.out.println("JSONObject内嵌JSONArray:" + "\r" + jsonObject2.toString());
		System.out.println("JSONArray内嵌JSONArray:" + "\r" + jsonArray1.toString());
		System.out.println("JSONArray内嵌JSONObject:" + "\r" + jsonArray2.toString());
		
	}
}

Output

JSONObject内嵌JSONObject:
{"object1":{"Name":"Tom","age":"11"},"object2":{"Name":"Tom","age":"11"}}
JSONObject内嵌JSONArray:
{"JSONArray2":["abc","xyz"],"JSONArray1":["abc","xyz"]}
JSONArray内嵌JSONArray:
[["abc","xyz"],["abc","xyz"]]
JSONArray内嵌JSONObject:
[{"Name":"Tom","age":"11"},{"Name":"Tom","age":"11"}]
开发中根据需求进行内嵌

2.3 解析json数据

package TestJson;

import org.json.JSONObject;

public class TestJson03 {
	public static void main(String[] args) {
		//解析字符串
		JSONObject jsonObject1 = new JSONObject();
		jsonObject1.put("Name", "Tom");
		jsonObject1.put("age", "11");
		System.out.println("解析字符串:" + "\r" + jsonObject1.getString("Name"));
		
		//解析对象
		JSONObject jsonObject = new JSONObject("{'Name':'Tom','age':'11'}");
		JSONObject jsonObject2 = new JSONObject();
		jsonObject2.put("jsonObject", jsonObject);
		
		System.out.println("解析对象:");
		System.out.println(jsonObject2.getJSONObject("jsonObject").toString());
	}

}

Output:

解析字符串:
Tom
解析对象:
{"Name":"Tom","age":"11"}
  • 17
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值