博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何使用JSON和GSON
阅读量:7035 次
发布时间:2019-06-28

本文共 6796 字,大约阅读时间需要 22 分钟。

说明:本项目是在MyEclipse中创建Maven项目来进行对于json格式文件的操作

在maven项目中引入对于支持json开发的的依赖,在pom.xml文件中添加一下依赖:      
org.json
json
20090211

1. JSON使用指南

**使用jsonobject的原生的方法生成一个jsonobject**

----------

<1>创建一个jsonobject对象   JSONObject wamgxiaoer = new JSONObject();<2>使用键值对对的形式添加对象的一些属性      Object nullobj = null;    wamgxiaoer.put("name", "王小二");    wamgxiaoer.put("age", 25.2);    wamgxiaoer.put("birthday", "1990-01-01");    wamgxiaoer.put("schooll", "蓝翔");    wamgxiaoer.put("major",new String[]{"理发","挖掘机"});    wamgxiaoer.put("has_girfriend", false);    wamgxiaoer.put("car", nullobj);    wamgxiaoer.put("house", nullobj);        wamgxiaoer.put("comment", "这是一个注释");

//使用tostring方法将json格式的数据转化成一个string类型的数据进行输出

System.out.println(wamgxiaoer.toString());

使用Map方式生成jsonobject对象

<1>生成一个map类型的对象

Map<String, Object> wamgxiaoer = new HashMap<String, Object>();

Object nullobj = null;    wamgxiaoer.put("name", "王小二");    wamgxiaoer.put("age", 25.2);    wamgxiaoer.put("birthday", "1990-01-01");    wamgxiaoer.put("schooll", "蓝翔");    wamgxiaoer.put("major",new String[]{"理发","挖掘机"});    wamgxiaoer.put("has_girfriend", false);    wamgxiaoer.put("car", nullobj);    wamgxiaoer.put("house", nullobj);        wamgxiaoer.put("comment", "这是一个注释");

使用jsonobject的tomap方法讲一个map类型的对象转换成一个jsonobject对象,最后利用jsonobject对象的tostring方法转换成一个字符类型数据

System.out.println(new JSONObject(wamgxiaoer).toString());

使用Java Bean方法构建json

<1>创建一个Java bean

package bean;import java.util.Arrays;  import com.google.gson.annotations.SerializedName; 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 coment;    private String birthday;    private transient String ignore;            public String getIgnore() {        return ignore;    }    public void setIgnore(String ignore) {        this.ignore = 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 getComent() {        return coment;    }    public void setComent(String coment) {        this.coment = coment;    }    public String getBirthday() {        return birthday;    }    public void setBirthday(String 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) + ", coment=" + coment                + ", birthday=" + birthday + "]";    }    }

<2>使用自己创建的Java bean的方法来设定属性

private static void creatByJavaBean() {        Diaosi wamgxiaoer = new Diaosi();        wamgxiaoer.setName("王小二");        wamgxiaoer.setAge(25.2);        wamgxiaoer.setBirthday("1990-01-01");        wamgxiaoer.setSchool("蓝翔");        wamgxiaoer.setMajor(new String[]{"理发","挖掘机"});        wamgxiaoer.setHas_girlfriend(false);        wamgxiaoer.setCar(null);        wamgxiaoer.setHouse(null);        wamgxiaoer.setComent("这是一个注释");        System.out.println(new JSONObject(wamgxiaoer));    }

从文件解析json对象

<1>首先在pom.xml文件引入Commons-io来使用一些对于文件的操作,例如:

commons-io
commons-io
2.4

<2>获取json文件所在的路径从而获取一个文件对象

File file = new File(ReadJsonSample.class.getResource("/wangxiaoer.json").getFile());

<3>获取文件中的内容:

String content = FileUtils.readFileToString(file);
<4>创建一个jsonobject对象来解析json格式的数据
JSONObject jsonObject = new JSONObject(content);
<5>通过json的方法来获取一些属性对于的值

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

2..GSON使用指南

GSON是由谷歌公司提出来的出来json格式数据的方法
<2>引入关于GSON的依赖

com.google.code.gson
gson
2.8.2

<3>创建一个类的实例并为其赋值

Diaosi wamgxiaoer = new Diaosi();

wamgxiaoer.setName("王小二");wamgxiaoer.setAge(25.2);wamgxiaoer.setBirthday("1990-01-01");wamgxiaoer.setSchool("蓝翔");wamgxiaoer.setMajor(new String[]{"理发","挖掘机"});wamgxiaoer.setHas_girlfriend(false);wamgxiaoer.setCar(null);wamgxiaoer.setHouse(null);wamgxiaoer.setComent("这是一个注释");wamgxiaoer.setIgnore("不要看见我!");

<4>创建一个GSON对象

Gson gson = new Gson();
<5>使用GSON对象的tostring方法将其转换成一个string类型的对象
System.out.println(gson.toJson(wamgxiaoer));
<6>GSONbuilder创建个性化的json格式的数据,并通过gsonbuilder的create方法来创建一个gson对象

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(wamgxiaoer));}

GSON解析json格式数据

<1>获取json的数据文件内容

File file = new File(ReadJsonSample.class.getResource("/wangxiaoer.json").getFile());        String content = FileUtils.readFileToString(file);

<2>创建一个GSON对象

Gson gson =new  GsonBuilder().setDateFormat("yyyy-MM-dd").create();

<3>使用GSON进行反解析

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());

想了解更多关于GSON的可以在GitHub上查看GSON的官方文档,最后附上项目的下载地址:

链接: 密码:khbb

转载地址:http://fufal.baihongyu.com/

你可能感兴趣的文章
记一次面试经验
查看>>
JDK与JavaSE JavaEE的关系
查看>>
Linux MMC/SD/SDIO体系结构
查看>>
C#程序退出的几种方法
查看>>
基于HTTP Live Streaming(HLS) 搭建在线点播系统
查看>>
常用的DOS命令
查看>>
Linux学习:第一天_笔记
查看>>
使用MySQL的慢查询日志找到低效的SQL语句
查看>>
SQL语法
查看>>
我的友情链接
查看>>
django小例子
查看>>
开源数据库中间件kingshard横空出世
查看>>
配置iptables实现双机间端口转发
查看>>
SQL分类及常用语句
查看>>
linux下c/c++混合编程
查看>>
FastCGI和CGI运行差异知识普及
查看>>
unix、linux下的系统性能监控工具nmon
查看>>
nginx的压力测试、访问方式及加密
查看>>
jsonp技术访问天气Demo
查看>>
改编关于ZipInputStream的一个小程序
查看>>