json之com.google.gson.Gson

2024-06-16 22:38
文章标签 json com google gson

本文主要是介绍json之com.google.gson.Gson,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

需要导入:gson-2.2.4.jar

一、JSON与数组互转:

//将数组转JSON
int[] number = {1,2,3,4,5};
Gson gson = new Gson();  
String numberjson = gson.toJson(number);
//将JSON转数组
int[] numberNew = gson.fromJson(numberjson, int[].class); 

二、 JSON与JavaBean互转:

// JavaBean转JSON
Student stu = new Student("1001", "lwc");
Gson gson = new Gson();
String jsondata = gson.toJson(stu);
// JSON转JavaBean
stu = gson.fromJson(jsondata, Student.class); 

三、 JSON与List互转:

// List转JSON
List list = new ArrayList();
for (int i = 0; i < 5; i++) {list.add("element" + i);
}
Gson gson = new Gson();
String json = gson.toJson(list);
// JSON转List
List list2 = (List) gson.fromJson(json, Object.class); 

四、 JSON与泛型List互转:

// 泛型Lis转JSON
List<Student> list = new ArrayList<Student>();
for (int i = 0; i < 3; i++) {
Student stu = new Student("100" + i, "name" + i);list.add(stu);
}
Type type = newTypeToken<List<Student>>() {}.getType();
Gson gson = new Gson();
String json = gson.toJson(list, type);
//JSON转泛型Lis
List<Student> users = gson.fromJson(json.toString(), type);

五、Map转json:

// Map转JSON
Map map = new HashMap();
map.put("no", "1001");
map.put("name", "lwc");
Gson gson = new Gson();
String json = gson.toJson(map);

六、JSON与泛型Map互转:

// JSON转泛型Map
Map<String, Student> map = new HashMap<String, Student>();
for (int i = 0; i < 2; i++) {Student stu = new Student("100" + i, "name" + i);map.put("100" + i, stu);
}
Type type = new TypeToken<Map<String, Student>>() {}.getType();
Gson gson = new Gson();
String json = gson.toJson(map, type);
// 转泛型Map转JSON
Map<String, Student> mapStu = gson.fromJson(json.toString(), type);  

七、 JSON与带日期JavaBean互转:

/*** 日期序列化实用工具类*/
class DateDeserializerUtils implements  JsonDeserializer<java.util.Date> {public Date deserialize(JsonElement arg0, Type arg1,
JsonDeserializationContext arg2) throws JsonParseException {return new java.util.Date(arg0.getAsJsonPrimitive().getAsLong());}
}
/*** 日期解序列实用工具类*/
class DateSerializerUtils implements JsonSerializer<java.util.Date> {public JsonElement serialize(Date arg0, Type arg1,
JsonSerializationContext arg2) {return new JsonPrimitive(arg0.getTime());}
} 
public class Test {public static void main(String[] args) {// 带日期JavaBean转JSONStudent stu = new Student("1001", "lwc", new Date());Gson gson = new Gson();
gson = new GsonBuilder().registerTypeAdapter(Date.class,
new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();String json = gson.toJson(stu);// JSON转带日期JavaBeangson = new GsonBuilder().registerTypeAdapter(Date.class,
new                         DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();Type type = new TypeToken<Student>() {}.getType();Student s = gson.fromJson(json, type);// 泛型日期List转JSONList<Student> list = new ArrayList<Student>();list.add(new Student("1001", "name1", new Date()));list.add(new Student("1002", "name2", new Date()));gson = new GsonBuilder().registerTypeAdapter(Date.class,
new DateSerializerUtils()).setDateFormat(DateFormat.LONG).create();Type type2 = new TypeToken<List<Student>>() {}.getType();json = gson.toJson(list, type2);// JSON转泛型日期Listgson = new GsonBuilder().registerTypeAdapter(Date.class,
new DateDeserializerUtils()).setDateFormat(DateFormat.LONG).create();List<Student> stus = gson.fromJson(json.toString(), type);}
} 

这篇关于json之com.google.gson.Gson的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067748

相关文章

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法   消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法 [转载]原地址:http://blog.csdn.net/x605940745/article/details/17911115 消除SDK更新时的“

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

特殊JSON解析

一般的与后台交互;都会涉及到接口数据的获取;而这里的数据一般情况就是JSON 了;JSON 解析起来方便;而且数据量也较小一些;所以JSON在接口数据返回中是个很不错的选择。 下面简单说下JSON解析过程中的一些案例: 这里我用到了三方的架包:fastjson-1.1.39.jar 架包 可以在我的博客中找到下载;或者网上找下 很多的; 这里主要就是映射  关系了;这就要求:实体类的名称和

com.google.gson.JsonSyntaxException:java.lang.IllegalStateException异常

用Gson解析json数据的时候,遇到一个异常,如下图: 这个异常很简单,就是你的封装json数据的javabean没有写对,你仔细查看一下javabean就可以了 比如:我的解析的代码是             Gson gson = new Gson();             ForgetJson rb = gson.fromJson(agResult.mstrJson, For

用ajax json给后台action传数据要注意的问题

必须要有get和set方法   1 action中定义bean变量,注意写get和set方法 2 js中写ajax方法,传json类型数据 3 配置action在struts2中

go json反序列化成指定类型

简介 简单的介绍一下使用go的json库,将json字符串反序列化成接口中指定的实现类 代码如下 package usejsontype ExamInterface interface {CheckRule(data any) bool}type IntStru struct {DefalutVal int `json:"defalut_val"`Max int `json:

Google Earth Engine——高程数据入门和山体阴影和坡度的使用

目录 山体阴影和坡度 对图像应用计算 应用空间减速器 高程数据 通过从“重置”按钮下拉菜单中选择“清除脚本”来清除脚本。搜索“elevation”并单击 SRTM Digital Elevation Data 30m 结果以显示数据集描述。单击导入,将变量移动到脚本顶部的导入部分。将默认变量名称“image”重命名为“srtm”。使用脚本将图像对象添加到地图: Map

The import com.google cannot be resolved

The import com.google cannot be resolved,报错: 第一感觉就是缺少jar包,因为项目用maven管理,所以在pom.xml中添加: <dependency>  <groupId>com.google.code.gson</groupId>  <artifactId>gson</artifactId>  <version>2.3.1</ver

Java构造和解析Json数据的两种方法(json-lib构造和解析Json数据, org.json构造和解析Json数据)

在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别。下面首先介绍用json-lib构造和解析Json数据的方法示例。 一、介绍       JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包,主要就是用来解析Json