摘要:说明本项目是在中创建项目来进行对于格式文件的操作在项目中引入对于支持开发的的依赖,在文件中添加一下依赖使用指南使用的原生的方法生成一个创建一个对象使用键值对对的形式添加对象的一些属性王小二蓝翔理发挖掘机这是一个注释使
说明:本项目是在MyEclipse中创建Maven项目来进行对于json格式文件的操作
在maven项目中引入对于支持json开发的的依赖,在pom.xml文件中添加一下依赖:1. JSON使用指南org.json json 20090211
**使用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
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());
<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;i2..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的官方文档,最后附上项目的下载地址:
链接:http://pan.baidu.com/s/1pLHp5ph 密码:khbb
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/61893.html
摘要:时间年月日星期日说明本文部分内容均来自慕课网。慕课网教学示例源码无个人学习源码第一章课程概述课程介绍课程须知本课程面向所有使用语言进行开发的小伙伴。 时间:2017年05月21日星期日说明:本文部分内容均来自慕课网。@慕课网:http://www.imooc.com教学示例源码:无个人学习源码:https://github.com/zccodere/s... 第一章:课程概述 1-1 ...
摘要:简介本文中,教大家如何使用和将不同的字段映射到单个字段中。这两个注解将帮助我们把属性映射到同一字段。因此,将知道文档中映射到字段的其他字段的名称。 简介 本文中,教大家如何使用Jackson和Gson将不同的JSON字段映射到单个Java字段中。 Maven依赖 为了使用Jackson和Gson库,我们需要在POM中添加以下依赖项: com.google.code.gson ...
摘要:六原理说明侵入编译流程,在编译过程中,修改库的字节码,修改解析相关的方法,在数据类型不一致的时候,跳过当前字段的解析。 一、目录 1.gson-plugin告别Json数据类型不一致(一)2.gson-plugin基础源码分析(二)3.gson-plugin深入源码分析(三)4.gson-plugin如何在JitPack发布(四) 看完这4篇文章,对Gson解析会有更加深刻的认识,对A...
阅读 3249·2021-10-11 11:08
阅读 4392·2021-09-22 15:54
阅读 878·2019-08-30 15:56
阅读 837·2019-08-30 15:55
阅读 3510·2019-08-30 15:52
阅读 1334·2019-08-30 15:43
阅读 1917·2019-08-30 11:14
阅读 2474·2019-08-29 16:11