java基础之Json

目录

概念

基于org.json操作Json

基于Jackson操作Json

基于gson操作Json



一、概念

      JSON:javaScript Object Notation,是一种轻量级的数据交换格式。独立于编程语言。
      是以键值对的形式进行存储。但是,java中没有包含有json,只能通过JSON的第三方处理包进行开发使用。

      第三方工具包:org.json(官方推荐)、GSON(Google出品)、Jackson(最快的JSON处理器)

对应jar包下载

下面操作需要用到的User类

public class User{
	
	private String id;
	private String name;
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

基于org.json操作的Json例子

//JSON文件
{
	"Users" : [
	{
		"id":"17231546005",
		"name":"huang"
	},
	{
		"id":"17231546009",
		"name":"can"
	}
	]
}

剩下的操作的json文件

[
	{
		"id":"17231546005",
		"name":"huang"
	},
	{
		"id":"17231546009",
		"name":"can"
	}
]

返回顶部

二、基于org.json操作Json

  1. 将对象转换为Json格式串(对象==>Json)
public class JSONTest {// 对象==>json

	public static void main(String[] args) throws JSONException {
	
		User u = new User();
		u.setId("17231546332");
		u.setName("林三");
		
		// 构造Json对象
		JSONObject jsonObject = new JSONObject();
		
		jsonObject.put("id", u.getId());
		jsonObject.put("name", u.getName());
		
		System.out.println(jsonObject);
		
	}
}
  1. 读取外部Json文件转换封装为对象集合(Json==>对象)
File file = new File("src/testing/user.json");
		
		try(FileReader fileReader = new FileReader(file)){
			
			// 读取文件内容对象
			int length = (int)file.length();
			char[] chars = new char[length];
			
			fileReader.read();
			
			String str = String.valueOf(chars);// json所有的没有放到这里面来
			JSONObject jsonObject = new JSONObject(str);
			
			// 开始解析JSONObject对象
			JSONArray users = jsonObject.getJSONArray("Users");
			
			ArrayList<User> userList = new ArrayList<User>();
			
			for (int i = 0; i < users.length(); i++) {
				
				// 获取单个JSONObject对象
				JSONObject userObject = (JSONObject)users.get(i);
				
				User userOne = new User();
				userOne.setId(userObject.getString("id"));
				userOne.setName(userObject.getString("name"));
				
				userList.add(userOne);
			}
			
			for (User user : userList) {
				System.out.println(user.getId()+";"+user.getName());
			}
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

返回顶部

三、基于Jackson操作Json

  1. 将对象与Json格式串互换(对象<==>Json)
ObjectMapper objectMapper = new ObjectMapper();
		
		User user = new User();
		user.setId("222");
		user.setName("huang");
		
		// 将对象解==》json
		String jsonStr = objectMapper.writeValueAsString(user);
		System.out.println(jsonStr);
		
		// 从json==》对象
		User JsonToUser = objectMapper.readValue(jsonStr, User.class);
		System.out.println(JsonToUser.getId()+";"+JsonToUser.getName());
  1. 读取外部Json文件转换封装为对象集合(Json==>对象)
ObjectMapper objectMapper = new ObjectMapper();

		File file = new File("src/testing/Users.json");

		List<User> userList = objectMapper.readValue(file, new TypeReference<List<User>>() {});

		for (User user : userList) {
			System.out.println(user.getId() + ";" + user.getName());
		}

返回顶部

四、基于gson操作Json

  1. 将对象与Json格式串互换(对象<==>Json)
User user = new User();
		user.setId("17231546003");
		user.setName("huang");
		
		// 对象转换为json
		Gson gson = new Gson();
		String json = gson.toJson(user);
		System.out.println(json);
		
		// json转换为对象
		User jsonTouser = gson.fromJson(json, User.class);
		
		System.out.println(jsonTouser.getId()+";"+jsonTouser.getName());
  1. 读取外部Json文件转换封装为对象集合(Json==>对象)
Gson gson = new Gson();

		try {

			FileReader fileReader = new FileReader(new File("src/testing/Users.json"));

			List<User> user = gson.fromJson(fileReader, new TypeToken<List<User>>() {
			}.getType());

			for (User user2 : user) {

				System.out.println(user2.getId() + ";" + user2.getName());
			}

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

返回顶部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值