使用Gson 对象名不同字段相同Javabean字段顺序 的构建

博客分类:
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
jar和源码下载地址:
public class Student {
private int
private Date birthD
public int getId() {
public void setId(int id) {
public String getName() {
public void setName(String name) {
this.name =
public Date getBirthDay() {
return birthD
public void setBirthDay(Date birthDay) {
this.birthDay = birthD
public String toString() {
return "Student [birthDay=" + birthDay + ", id=" + id + ", name="
+ name + "]";
import java.util.ArrayL
import java.util.D
import java.util.L
import com.google.gson.G
import com.google.gson.reflect.TypeT
public class GsonTest1 {
public static void main(String[] args) {
Gson gson = new Gson();
Student student1 = new Student();
student1.setId(1);
student1.setName("李坤");
student1.setBirthDay(new Date());
// //////////////////////////////////////////////////////////
System.out.println("----------简单对象之间的转化-------------");
// 简单的bean转为json
String s1 = gson.toJson(student1);
System.out.println("简单Bean转化为Json===" + s1);
// json转为简单Bean
Student student = gson.fromJson(s1, Student.class);
System.out.println("Json转为简单Bean===" + student);
// 简单Bean转化为Json==={"id":1,"name":"李坤","birthDay":"Jun 22, :52 AM"}
// Json转为简单Bean===Student [birthDay=Fri Jun 22 08:27:52 CST 2012, id=1,
// name=李坤]
// //////////////////////////////////////////////////////////
Student student2 = new Student();
student2.setId(2);
student2.setName("曹贵生");
student2.setBirthDay(new Date());
Student student3 = new Student();
student3.setId(3);
student3.setName("柳波");
student3.setBirthDay(new Date());
List list = new ArrayList();
list.add(student1);
list.add(student2);
list.add(student3);
System.out.println("----------带泛型的List之间的转化-------------");
// 带泛型的list转化为json
String s2 = gson.toJson(list);
System.out.println("带泛型的list转化为json==" + s2);
// json转为带泛型的list
List retList = gson.fromJson(s2,
new TypeToken() {
}.getType());
for (Student stu : retList) {
System.out.println(stu);
// 带泛型的list转化为json== [{"id":1,"name":"李坤","birthDay":"Jun 22, :52 AM"}, {"id":2,"name":"曹贵生","birthDay":"Jun 22, :52 AM"}, {"id":3,"name":"柳波","birthDay":"Jun 22, :52 AM"}]
// Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=1, name=李坤]
// Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=2, name=曹贵生]
// Student [birthDay=Fri Jun 22 08:28:52 CST 2012, id=3, name=柳波]
----------简单对象之间的转化-------------
简单Bean转化为Json==={"id":1,"name":"李坤","birthDay":"Jun 22, :31 PM"}
Json转为简单Bean===Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=1, name=李坤]
----------带泛型的List之间的转化-------------
带 泛型的list转化为json==[{"id":1,"name":"李 坤","birthDay":"Jun 22, :31 PM"},{"id":2,"name":"曹贵 生","birthDay":"Jun 22, :31 PM"},{"id":3,"name":"柳 波","birthDay":"Jun 22, :31 PM"}]
Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=1, name=李坤]
Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=2, name=曹贵生]
Student [birthDay=Fri Jun 22 21:10:31 CST 2012, id=3, name=柳波]
Json转换利器Gson之实例一-简单对象转化和带泛型的List转化 () Json转换利器Gson之实例二-Gson注解和GsonBuilder () Json转换利器Gson之实例三-Map处理(上) () Json转换利器Gson之实例四-Map处理(下) () Json转换利器Gson之实例五-实际开发中的特殊需求处理 () Json转换利器Gson之实例六-注册TypeAdapter及处理Enum类型 ()
浏览: 179558 次
来自: 上海
http://www.tuicool.com/articles ...
解决了我的一个问题,学习了,谢谢!
if(month==0){
year-=1;mont ...
好像不行啊!我放进去了,还是错的啊
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'JSON(JavaScript Object Notation)是一种由道格拉斯·克罗克福特构想和设计、轻量级的数据交换语言,该语言以易于让人阅读的文字为基础,用来传输由属性值或者序列性的值组成的数据对象。尽管JSON是JavaScript的一个子集,但JSON是独立于语言的文本格式,并且采用了类似于C语言家族的一些习惯。JSON 数据格式与语言无关,脱胎于 JavaScript,但目前很多编程语言都支持 JSON 格式数据的生成和解析。JSON 的官方 MIME 类型是 application/json,文件扩展名是 .json。JSON用于描述资料结构,有两种结构存在:对象(object):一个对象包含一系列非排序的名称/值对(pair),一个对象以{开始,并以}结束。每个名称/值对之间使用:分区。数组 (array):一个数组是一个值(value)的集合,一个数组以[开始,并以]结束。数组成员之间使用,分区。具体的格式如下:名称/值(pair):名称和值之间使用:隔开,一般的形式是:{name:value}一个名称是一个字符串; 一个值(value)可以是一个字符串(string),一个数值(number),一个对象(object),一个布尔值(bool),一个有序列表(array),或者一个null值。字符串:以""括起来的一串字符。数值:一系列0-9的数字组合,可以为负数或者小数。还可以用e或者E表示为指数形式。布尔值:表示为true或者false。值的有序列表(array):一个或者多个值用,分区后,使用[,]括起来就形成了这样的列表,形如:[value, value]示例:
在maven项目中引用json依赖
java中使用json
我们也可以通过map集合来构建json
也可以使用javabean来构建json对象
从文件中读取json引入依赖包
创建json文件
读取json内容
存在这样一种情况,当我们想获取json数据中key为name的value值,但是没有这个key 如果不加以处理,会引起程序的报错
我们可以采用以下的方式来保证程序的健壮性
Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。Gson的应用主要为toJson与fromJson两个转换函数,而在使用这种对象转换之前需先创建好对象的类别以及其成员才能成功的将JSON字符串成功转换成相对应的对象。class Examples {private int answer1 = 100;private String answer2 = "Hello world!";Examples(){} // default constructor}序列化JAVA对象成JSON字符串Examples example1 = new Examples();Gson gson = new Gson();String json = gson.toJson(example1);==& json is {"answer1":100,"answer2":"Hello world!"}反序列化JSON字符串成对应的JAVA对象Examples example2= gson.fromJson(json,Examples.class);==& example2即與example1相同对象example1透过toJson序列化成JSON字符串传递,再宣告一个对象example2为接收了JSON后透过fromJson反序列化成example2,故example1与example2相同在pom文件中添加相关的依赖
基本示例:
这样看gson与json没有多大区别但是我们可以这样玩,给属性加上注解
这个很有意思对吧,可以改变key值
构建个性化的gson数据
gson简单的回调函数示例:
使用gson隐藏数据 如下 sex的值并未显示出来
将gson数据解析成对象。这是json所做不到的
使用gson实现日期的解析
注意:gson数据中的数组可以和java中的集合实现无缝对接特别声明:本文为网易自媒体平台“网易号”作者上传并发布,仅代表该作者观点。网易仅提供信息发布平台。
一键安装官方客户端
重大事件及时推送 阅读更流畅
http://dingyue.nosdn.127.net/OJjusbfaCd7JzCwkV=d2sE5slzqEH9G=pdqnG36KTrPVC2.png和第三方对接的时候,返回给我们的json时参数字段多是很常见的现象,所以我们手动去创建javabean肯定是要花费不少时间,博主在网上找到了很多种,可用通过json自动生成javabean的工具,这里简单的介绍一下Intellij IDEA 中的插件GsonFormat。
1、什么是GsonFormat
将json数据格式转换为javabean对象的as插件。
2、快捷键 Ctrl+ALT+S,或settings --&Plugins --&输入GsonFormat & install plugins
安装完成,重启IntelliJ IDEA即可,首先需要new Class文件,然后按键 ALT+Insert 选中GsonFormat,或快捷键ALT+S即可,弹出框输入json格式的字符串数据即可。
3、配合Gson&
&dependency&
&groupId&com.google.code.gson&/groupId&
&artifactId&gson&/artifactId&
&version&<span style="color: #.8.<span style="color: #&/version&
&/dependency&
阅读(...) 评论()gson和JavaBean之间的转换
一、gson主要用来对JavaBean序列化和反序列化
gson可以把JavaBean序列化为符合json格式的字符串,也可以将json字符串反序列为JavaBean
需要导入的包:
gson-2.2.4.jar
二、最核心的方法:
String json = gson.toJson(javaBean);
JavaBean javaBean = gson.fromJson(json, JavaBean.class);
1、JavaBean
public class Person {
public Person(String name,int age,String sex){
this.name =
this.age =
this.sex =
2、JavaBean转换Json格式
Person p = new Person("张三",20,"男");
Gson gson = new Gson();
String json = gson.toJson(p);
System.out.println(json);
//结果:{"name":"张三","age":20,"sex":"男"}
3、Json转换为JavaBean
String json = "{\"name\":\"张三\",\"age\":20,\"sex\":\"男\"}";
Gson gson = new Gson();
Person p = gson.fromJson(json, Person.class);
System.out.println(p.getName());
System.out.println(p.getAge());
System.out.println(p.getSex());
//结果:张三
Gson 封装,json从此很简单
解析_Gson转换成Bean类的格式
Gson处理json数据,转换javaBean的时候,替换输出字段名,解析日期的坑
json数据和bean之间的转换
详解Gson使用(一)简单对象转化
JSON解析类库之Gson(1) --- 简单JavaBean对象、带泛型的Bean对象与JSON互转
用gson处理json时bean和json串的对应关系
Json与gson将字符串转换JavaBean比较
Gson在java对象和json字符串之间转换
详解Gson使用(三)使用注解
没有更多推荐了,在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
jackson JSON 转对象 JSON 名必须要和对象里面一一对应吗?少不可以吗?
比如 JSON 是
"id": 5400,
"idstr": "5400",
"class": 1,
"screen_name": "segmentfault",
"name": "segmentfault",
"province": "11",
"city": "1000",
"location": "北京",
"description": "",
javapublic class UserInfo {
private String screen_
这样就转换不了吗?有什么办法?
想到办法是先转 Map 在设值
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
// jackson 1.9 and before
objectMapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// or jackson 2.0
objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
Java比较弱爆的一种设计,转Map方案 如果字段很多也不是很方便,暂时没有找到合理的方法 楼主也可以学习fastjson 和 gson 也都很不错的
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
用 GSON 加 @SerializedName 注解可以自定义 field 名。
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 javabean的访问范围 的文章

 

随机推荐