JSON入门使用

基础入门

  • 什么是JSON?:轻量级的数据格式。全称JavaScript Object Notation。
  • 优点:易于阅读,易于程序的解析。

标准的JSON数据表示

  • 数据结构:Object,Array
  • 基本类型:String,number,true,false,null.
  • 对于Object来说:用{}包含键值结构,Key必须是String类型,value为任何基本类型或数据结构。
  • 对于Array来说:用[]来起始,并用逗号来分隔元素。

Json In Java

  • 生成Json结构数据
//生成Json结构数据
public class JsonObject {

	public static void main(String[] args) {
		//jSONObjectSample();
		//createJsonByMap();
		createJsonByBean();
	}

	private static void jSONObjectSample() {
		//别忘了导包json.jar
		JSONObject wal = new JSONObject();
		Object nullObj = null;
		try {
			wal.put("name","王明");
			wal.put("age", 18.8);
			wal.put("school", "大学");
			wal.put("major", new String[] {"理发","挖掘机"});
			wal.put("girlfriend", false);
			wal.put("car", nullObj);
			System.out.println(wal.toString());
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	//使用Map构建Json
	private static void createJsonByMap() {
		Map<String,Object> wal=new HashMap<String,Object>();
		Object nullObj = null;
		wal.put("name","王明");
		wal.put("age", 18.8);
		wal.put("school", "大学");
		wal.put("major", new String[] {"理发","挖掘机"});
		wal.put("girlfriend", false);
		wal.put("car", nullObj);
		
		System.out.println(new JSONObject(wal));
	}
	

	//使用Java Bean构建对象
	private static void createJsonByBean() {
		WangMing wm = new WangMing();
		wm.setName("王明");
		wm.setAge(18.8);
		wm.setSchool("大学");
		wm.setMajor(new String[] {"理发","挖掘机"});
		wm.setGirlfriend(false);
		wm.setCar(null);
		
		System.out.println(new JSONObject(wm));
	}
}

public class WangMing {
	private String name;
	private double age;
	private String school;
	private String[] major;
	private boolean girlfriend;
	private Object car;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public double getAge() {
		return age;
	}
	public void setAge(double age) {
		this.age = age;
	}
	public String getSchool() {
		return school;
	}
	public void setSchool(String school) {
		this.school = school;
	}
	public String[] getMajor() {
		return major;
	}
	public void setMajor(String[] major) {
		this.major = major;
	}
	public boolean isGirlfriend() {
		return girlfriend;
	}
	public void setGirlfriend(boolean girlfriend) {
		this.girlfriend = girlfriend;
	}
	public Object getCar() {
		return car;
	}
	public void setCar(Object car) {
		this.car = car;
	}
	
	
}

  • 解析JSON
//解析JSON
//弊端:不能反解析JavaBean
public class ReadJSONSample {
	//wangming.json文件中内容:{"girlfriend":false,"major":["理发","挖掘机"],"school":"大学","name":"王明","age":18.8}
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//项目根目录下获取文件的路径
		File file = new File(ReadJSONSample.class.getResource("/wangming.json").getFile());
		//commons-io包下的FileUtils
		//读取文件的内容
		String content = FileUtils.readFileToString(file);
		JSONObject jo = new JSONObject(content);
		//细节判断
		if (!jo.isNull("name")) {
			System.out.println(jo.getString("name"));
		}
		System.out.println(jo.getDouble("age"));
		System.out.println(jo.getBoolean("girlfriend"));
		
		//获取json中的数组value
		JSONArray majorArray = jo.getJSONArray("major");
		for (int i = 0; i < majorArray.length(); i++) {
			String s = (String)majorArray.get(i);
			System.out.println("专业"+(i+1)+s);
		}
	}

}

发布了13 篇原创文章 · 获赞 11 · 访问量 226

猜你喜欢

转载自blog.csdn.net/wangailin666/article/details/105187409