JSON快速入门(Java版)--慕课网笔记
2017-08-10 04:24
393 查看
第1章 课程概述
1-1 JSON课程介绍
JSON是行业内使用最为广泛的数据传输格式
JSON基础知识
Java中两种常见的JSON处理方式
综合运用
第2章 基础入门
2-1 什么是JSON
JSON是一种与开发语言无关的、轻量级的数据格式。全称是JavaScript Object Notation。
优点:易于人的阅读和编写,易于程序解析与生成
2-2 数据类型表示
数据结构
Object
使用花括号包含键值对结构,Key必须是String类型,value为任何基本类型或数据结构
Array
使用中括号[]来起始,并用逗号,来分割元素。
基本类型
String
number
true
false
null
2-3 JSON数据演示
第3章 JSON in Java
3-1 JSON使用
3-2 使用Map 构建JSON
3-3 使用Java Bean构建对象
3-4 从文件读取JSON
3-5 从文件读取JSON 判断null
3-6 JSON 总结
Json中没有Date类型
通过JSON不能将JavaBean反解析回来
第4章 第四章 GSON的使用
4-1 GSON介绍
google-gson
4-2 GSON生成JSON数据
4-3 生成JSON数据
4-4 GSON解析
4-5 GSON解析 带日期转换
4-6 集合类解析
4-7 总结
JSON时Android SDK官方的库
GSON适用于服务端开发
GSON比JSON功能更强大
关于JSON库的总结
功能:映射Java Object与json格式数据
通过Annotation注解来声明。
支持自定义属性名称。
支持包含或排除属性。
支持自定义接口完成解析/生成过程。
《JSON快速入门(Java版)》视频地址
1-1 JSON课程介绍
JSON是行业内使用最为广泛的数据传输格式
JSON基础知识
Java中两种常见的JSON处理方式
综合运用
第2章 基础入门
2-1 什么是JSON
JSON是一种与开发语言无关的、轻量级的数据格式。全称是JavaScript Object Notation。
优点:易于人的阅读和编写,易于程序解析与生成
{ "name": "JSON快速入门(Java版)", "author": "李广", "content": [ "JSON基础入门", "常用JSON处理" ], "time": { "value": 30, "unit": "分钟" } }
2-2 数据类型表示
数据结构
Object
使用花括号包含键值对结构,Key必须是String类型,value为任何基本类型或数据结构
Array
使用中括号[]来起始,并用逗号,来分割元素。
基本类型
String
number
true
false
null
2-3 JSON数据演示
{ "name": "王小二", "age": 25.2, "birthday": "1990-01-01", "school": "蓝翔", "major": [ "理发", "挖掘机" ], "has_girlfriend": false, "car": null, "house": null, "comment": "这是一个注释" }
第3章 JSON in Java
3-1 JSON使用
<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20090211</version> </dependency>
public class JsonObjectSample { public static void main(String[] args) { jSONObjectSample(); } // { // "name": "王小二", // "age": 25.2, // "birthday": "1990-01-01", // "school": "蓝翔", // "major": [ // "理发", // "挖掘机" // ], // "has_girlfriend": false, // "car": null, // "house": null, // "comment": "这是一个注释" // } private static void jSONObjectSample() { JSONObject wangxiaoer = new JSONObject(); Object nullObject = null; try { wangxiaoer.put("name", "王小二"); wangxiaoer.put("age", 25.2); wangxiaoer.put("birthday", "1990-01-01"); wangxiaoer.put("school", "蓝翔"); wangxiaoer.put("major", new String[] {"理发","挖掘机"}); wangxiaoer.put("has_girlfriend", false); wangxiaoer.put("car", nullObject); wangxiaoer.put("house", nullObject); wangxiaoer.put("comment", "这是一个注释"); System.out.println(wangxiaoer.toString()); } catch (JSONException e) { e.printStackTrace(); } } }
3-2 使用Map 构建JSON
private static void createJsonByMap() { Map<String,Object> wangxiaoer = new HashMap<String,Object>(); Object nullObject = null; wangxiaoer.put("name", "王小二"); wangxiaoer.put("age", 25.2); wangxiaoer.put("birthday", "1990-01-01"); wangxiaoer.put("school", "蓝翔"); wangxiaoer.put("major", new String[] { "理发", "挖掘机" }); wangxiaoer.put("has_girlfriend", false); wangxiaoer.put("car", nullObject); wangxiaoer.put("house", nullObject); wangxiaoer.put("comment", "这是一个注释"); System.out.println(new JSONObject(wangxiaoer).toString()); }
3-3 使用Java Bean构建对象
private static void createJsonByBean() { Diaosi wangxiaoer = new Diaosi(); wangxiaoer.setName("王小二"); wangxiaoer.setAge(25.2); wangxiaoer.setBirthday("1990-01-01"); wangxiaoer.setSchool("蓝翔"); wangxiaoer.setMajor(new String[] { "理发", "挖掘机" }); wangxiaoer.setHas_girlfriend(false); wangxiaoer.setCar(null); wangxiaoer.setHouse(null); wangxiaoer.setComment("这是一个注释"); System.out.println(new JSONObject(wangxiaoer)); }
public class Diaosi { private String name; private String school; private boolean has_girlfriend; private double age; private Object car; private Object house; private String[] major; private String comment; private String birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public boolean isHas_girlfriend() { return has_girlfriend; } public void setHas_girlfriend(boolean has_girlfriend) { this.has_girlfriend = has_girlfriend; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public Object getCar() { return car; } public void setCar(Object car) { this.car = car; } public Object getHouse() { return house; } public void setHouse(Object house) { this.house = house; } public String[] getMajor() { return major; } public void setMajor(String[] major) { this.major = major; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } }
3-4 从文件读取JSON
{ "birthday": "1990-01-01", "major": [ "理发", "挖掘机" ], "school": "蓝翔", "car": null, "name": "王小二", "has_girlfriend": false, "comment": "这是一个注释", "house": null, "age": 25.2 }
public class ReadJSONSample { public static void main(String[] args) throws IOException, JSONException { File file = new File(ReadJSONSample.class.getResource("wangxiaoer.json").getFile()); String content = FileUtils.readFileToString(file); JSONObject jsonObject = new JSONObject(content); System.out.println("姓名是:"+jsonObject.getString("name")); System.out.println("年龄"+jsonObject.getDouble("age")); System.out.println("有没有女朋友?"+jsonObject.getBoolean("has_girlfriend")); JSONArray majorArray = jsonObject.getJSONArray("major"); for(int i = 0;i < majorArray.length(); i++) { String m = (String)majorArray.get(i); System.out.println("专业-" + (i+1) + m); } } }
3-5 从文件读取JSON 判断null
public class ReadJSONSample { public static void main(String[] args) throws IOException, JSONException { File file = new File(ReadJSONSample.class.getResource("wangxiaoer.json").getFile()); String content = FileUtils.readFileToString(file); JSONObject jsonObject = new JSONObject(content); if(!jsonObject.isNull("name")) { System.out.println("姓名是:"+jsonObject.getString("name")); } if(!jsonObject.isNull("nickname")) { System.out.println("姓名是:"+jsonObject.getString("nickname")); } System.out.println("年龄"+jsonObject.getDouble("age")); System.out.println("有没有女朋友?"+jsonObject.getBoolean("has_girlfriend")); JSONArray majorArray = jsonObject.getJSONArray("major"); for(int i = 0;i < majorArray.length(); i++) { String m = (String)majorArray.get(i); System.out.println("专业-" + (i+1) + m); } } }
3-6 JSON 总结
Json中没有Date类型
通过JSON不能将JavaBean反解析回来
第4章 第四章 GSON的使用
4-1 GSON介绍
google-gson
4-2 GSON生成JSON数据
public class GsonCreateSample { public static void main(String[] args) { Diaosi wangxiaoer = new Diaosi(); wangxiaoer.setName("王小二"); wangxiaoer.setAge(25.2); wangxiaoer.setBirthday("1990-01-01"); wangxiaoer.setSchool("蓝翔"); wangxiaoer.setMajor(new String[] { "理发", "挖掘机" }); wangxiaoer.setHas_girlfriend(false); wangxiaoer.setCar(null); wangxiaoer.setHouse(null); wangxiaoer.setComment("这是一个注释"); Gson gson = new Gson(); System.out.println(gson.toJson(wangxiaoer)); } }
public class Diaosi { @SerializedName("NAME") private String name; private String school; private boolean has_girlfriend; private double age; private Object car; private Object house; private String[] major; private String comment; private String birthday; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public boolean isHas_girlfriend() { return has_girlfriend; } public void setHas_girlfriend(boolean has_girlfriend) { this.has_girlfriend = has_girlfriend; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public Object getCar() { return car; } public void setCar(Object car) { this.car = car; } public Object getHouse() { return house; } public void setHouse(Object house) { this.house = house; } public String[] getMajor() { return major; } public void setMajor(String[] major) { this.major = major; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } }
4-3 生成JSON数据
public class GsonCreateSample { public static void main(String[] args) { Diaosi wangxiaoer = new Diaosi(); wangxiaoer.setName("王小二"); wangxiaoer.setAge(25.2); wangxiaoer.setBirthday("1990-01-01"); wangxiaoer.setSchool("蓝翔"); wangxiaoer.setMajor(new String[] { "理发", "挖掘机" }); wangxiaoer.setHas_girlfriend(false); wangxiaoer.setCar(null); wangxiaoer.setHouse(null); wangxiaoer.setComment("这是一个注释"); wangxiaoer.setIgnore("不要看见我"); GsonBuilder gsonBuilder = new GsonBuilder(); gsonBuilder.setPrettyPrinting(); gsonBuilder.setFieldNamingStrategy(new FieldNamingStrategy(){ public String translateName(Field f) { if(f.getName().equals("name")) { return "NAME"; } return f.getName(); } }); Gson gson = gsonBuilder.create(); System.out.println(gson.toJson(wangxiaoer)); } }
public class Diaosi { private String name; private String school; private boolean has_girlfriend; private double age; private Object car; private Object house; private String[] major; private String comment; private String birthday; private transient String ignore; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public boolean isHas_girlfriend() { return has_girlfriend; } public void setHas_girlfriend(boolean has_girlfriend) { this.has_girlfriend = has_girlfriend; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public Object getCar() { return car; } public void setCar(Object car) { this.car = car; } public Object getHouse() { return house; } public void setHouse(Object house) { this.house = house; } public String[] getMajor() { return major; } public void setMajor(String[] major) { this.major = major; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getIgnore() { return ignore; } public void setIgnore(String ignore) { this.ignore = ignore; } }
4-4 GSON解析
public class GsonReadSample { public static void main(String[] args) throws IOException { File file = new File(ReadJSONSample.class.getResource("../jsonTest/wangxiaoer.json").getFile()); String content = FileUtils.readFileToString(file); Gson gson = new Gson(); Diaosi wangxiaoer = gson.fromJson(content, Diaosi.class); System.out.println(wangxiaoer.toString()); } }
public class Diaosi { private String name; private String school; private boolean has_girlfriend; private double age; private Object car; private Object house; private String[] major; private String comment; private String birthday; private transient String ignore; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public boolean isHas_girlfriend() { return has_girlfriend; } public void setHas_girlfriend(boolean has_girlfriend) { this.has_girlfriend = has_girlfriend; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public Object getCar() { return car; } public void setCar(Object car) { this.car = car; } public Object getHouse() { return house; } public void setHouse(Object house) { this.house = house; } public String[] getMajor() { return major; } public void setMajor(String[] major) { this.major = major; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public String getIgnore() { return ignore; } public void setIgnore(String ignore) { this.ignore = ignore; } @Override public String toString() { return "Diaosi [name=" + name + ", school=" + school + ", has_girlfriend=" + has_girlfriend + ", age=" + age + ", car=" + car + ", house=" + house + ", major=" + Arrays.toString(major) + ", comment=" + comment + ", birthday=" + birthday + "]"; } }
4-5 GSON解析 带日期转换
public class GsonReadSample { public static void main(String[] args) throws IOException { File file = new File(ReadJSONSample.class.getResource("../jsonTest/wangxiaoer.json").getFile()); String content = FileUtils.readFileToString(file); Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); DiaosiWithBirthday wangxiaoer = gson.fromJson(content, DiaosiWithBirthday.class); System.out.println(wangxiaoer.getBirthday().toLocaleString()); } }
public class DiaosiWithBirthday { private String name; private String school; private boolean has_girlfriend; private double age; private Object car; private Object house; private String[] major; private String comment; private Date birthday; private transient String ignore; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public boolean isHas_girlfriend() { return has_girlfriend; } public void setHas_girlfriend(boolean has_girlfriend) { this.has_girlfriend = has_girlfriend; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public Object getCar() { return car; } public void setCar(Object car) { this.car = car; } public Object getHouse() { return house; } public void setHouse(Object house) { this.house = house; } public String[] getMajor() { return major; } public void setMajor(String[] major) { this.major = major; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getIgnore() { return ignore; } public void setIgnore(String ignore) { this.ignore = ignore; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } @Override public String toString() { return "Diaosi [name=" + name + ", school=" + school + ", has_girlfriend=" + has_girlfriend + ", age=" + age + ", car=" + car + ", house=" + house + ", major=" + Arrays.toString(major) + ", comment=" + comment + ", birthday=" + birthday + "]"; } }
4-6 集合类解析
public class GsonReadSample { public static void main(String[] args) throws IOException { File file = new File(ReadJSONSample.class.getResource("../jsonTest/wangxiaoer.json").getFile()); String content = FileUtils.readFileToString(file); Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); DiaosiWithBirthday wangxiaoer = gson.fromJson(content, DiaosiWithBirthday.class); System.out.println(wangxiaoer.getBirthday().toLocaleString()); System.out.println(wangxiaoer.getMajor()); System.out.println(wangxiaoer.getMajor().getClass()); } }
public class DiaosiWithBirthday { private String name; private String school; private boolean has_girlfriend; private double age; private Object car; private Object house; private List<String> major; private String comment; private Date birthday; private transient String ignore; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } public boolean isHas_girlfriend() { return has_girlfriend; } public void setHas_girlfriend(boolean has_girlfriend) { this.has_girlfriend = has_girlfriend; } public double getAge() { return age; } public void setAge(double age) { this.age = age; } public Object getCar() { return car; } public void setCar(Object car) { this.car = car; } public Object getHouse() { return house; } public void setHouse(Object house) { this.house = house; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } public String getIgnore() { return ignore; } public void setIgnore(String ignore) { this.ignore = ignore; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public List<String> getMajor() { return major; } public void setMajor(List<String> major) { this.major = major; } }
4-7 总结
JSON时Android SDK官方的库
GSON适用于服务端开发
GSON比JSON功能更强大
关于JSON库的总结
功能:映射Java Object与json格式数据
通过Annotation注解来声明。
支持自定义属性名称。
支持包含或排除属性。
支持自定义接口完成解析/生成过程。
《JSON快速入门(Java版)》视频地址
相关文章推荐
- 一、JAVA8学习笔记 Lambda表达式快速入门
- Python学习笔记(六):多线程、XML、JSON(快速入门篇)
- MongoDB快速入门学习笔记8 MongoDB的java驱动操作
- 慕课网学习Java入门第二季笔记
- 慕课网 Java 入门 第三季 学习笔记
- 【实战\Java SSM快速开发仿慕课网在线教育平台项目笔记】第2章 项目各种结构概览(业务, 技术,角色,数据库,项目)
- 慕课网学习Java入门第三季笔记
- 慕课网 Java 入门 第二季 学习笔记
- java学习笔记之java如何快速入门
- 【实战\Java SSM快速开发仿慕课网在线教育平台项目笔记】第1章 课程项目整体概述(整体介绍及Eclipse,Maven,新浪SAE软件平台介绍)
- MongoDB快速入门笔记(八)之MongoDB的java驱动操作代码讲解
- 慕课网Java入门学习笔记
- [学习笔记]JSON for java入门总结
- Java入门笔记4_访问控制和包(转)
- XML学习笔记,快速入门
- Java加密和数字签名编程快速入门
- Java 5 泛型快速入门
- Java加密和数字签名编程快速入门
- Java入门笔记9_Socket (转)
- Java加密和数字签名编程快速入门