版权声明:关于版权问题:因为笔者有一颗热爱分享、奉献的心,如有雷同,纯属巧合,有侵立删,请各大网友监督。本文为博主原创文章,未经博主允许不得转载。除非加上本文章连接即可 https://blog.csdn.net/yi903718741/article/details/79023042
随着现在数据量的不断增大,json格式的渐渐替代了XML文件,笔者正好在工作中碰到了类似于这样的事情,所以我就在这里分享一下自己写出来的一个简单的案例。
在生成之前,如果你对json一无所知,我推荐去官网看一下帮助文档json官网
优点:易于人的阅读和编写,易于程序解析生产
数据结构
Object {}对象:键值对的结构,key必须是string类型、vlue为任何基本类型和数据结构
Array[]数组:“,”标示分隔符
基本类型
string、number、true、false、null
生成json文件有三种构建方法,具体喜欢哪一种各位自己尝试。
1. 通过json构建
1.准备json爪哇包
- org.json.jar
找不到的可以去笔者的主页资源里面下载,点击此链接也可以跳转json包
2.准备项目
1.创建一个maven项目,方便代码的管理
2.在项目的pom.xml文件中声明json.jar文件包
//声明json文件
<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
</dependencies>
3.创建class文件
public class JsonObjectSample {
public static void main(String[] args) {
JSONObject();
}
//通过json构建
private static void JSONObject() {
JSONObject zuchuanmalong = new JSONObject(); //创建json一个对象
Object nullobj = null; //跳过编译器的赋值
//需要加入捕获异常
try {
//以下进行赋值
zuchuanmalong.put("name", "祖传码农");
zuchuanmalong.put("age","20");
zuchuanmalong.put("birthday", "1997-08-09");
zuchuanmalong.put("school", "家里蹲");
zuchuanmalong.put("major", new String[] {"敲代码","打篮球"});
zuchuanmalong.put("has_girlfiend", true);
zuchuanmalong.put("car", nullobj);
zuchuanmalong.put("house", nullobj);
zuchuanmalong.put("comment", "这是我的第一个json文件");
System.out.println(zuchuanmalong.toString()); //输出当前json
} catch (JSONException e) {
e.printStackTrace();
}
}
输出即可看到结果:`{"birthday":"1997-08-09","major":["敲代码","打篮球"],"school":"家里蹲","car":null,"name":"祖传码农","has_girlfriend":true,"house":null,"age":20}`
2.使用Map
public class JsonObjectSample {
public static void main(String[] args) {
createJsonByMap();
}
private static void createJsonByMap() {
Map<String, Object> zuchuanmalong = new HashMap<String, Object>();
Object nullobj = null; //跳过编译器的赋值
//以下进行赋值
zuchuanmalong.put("name", "祖传码农");
zuchuanmalong.put("age","20");
zuchuanmalong.put("birthday", "1997-08-09");
zuchuanmalong.put("school", "家里蹲");
zuchuanmalong.put("major", new String[] {"敲代码","打篮球"});
zuchuanmalong.put("has_girlfiend", true);
zuchuanmalong.put("car", nullobj);
zuchuanmalong.put("house", nullobj);
zuchuanmalong.put("comment", "这是我的第一个json文件");
System.out.println(new JSONObject(zuchuanmalong).toString());
}
}
输出即可看到结果:`{"birthday":"1997-08-09","major":["敲代码","打篮球"],"school":"家里蹲","car":null,"name":"祖传码农","has_girlfriend":true,"house":null,"age":20}`
3.通过JAVABean来生成json对象
需要创建一个实体类来格式化属性
//生成实体类
public class User {
private String name;
private String school;
private boolean has_girlfriend;
private double age;
private Object car;
private Object house;
private String[] major;
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 getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
public class JsonObjectSample {
public static void main(String[] args) {
createJsonByBean();
}
//通过JAVABean来生成json对象
private static void createJsonByBean() {
User zuchuanmalong = new User();
//以下进行赋值
zuchuanmalong.setName( "祖传码农");
zuchuanmalong.setAge(20);
zuchuanmalong.setBirthday( "1997-08-09");
zuchuanmalong.setSchool("家里蹲");
zuchuanmalong.setMajor(new String[] {"敲代码","打篮球"});
zuchuanmalong.setHas_girlfriend( true);
zuchuanmalong.setCar(null);
zuchuanmalong.setHouse(null);
System.out.println(new JSONObject(zuchuanmalong));
}
}
输出即可看到结果:`{"birthday":"1997-08-09","major":["敲代码","打篮球"],"school":"家里蹲","car":null,"name":"祖传码农","has_girlfriend":true,"house":null,"age":20}`