json--处理框架
1、Android 中的Json解析工具fastjson 、序列化、反序列化
可以处理含有内部类的类,或包含集合内部类的类;
3、Android-JSONTool 一个简易的Json框架类,小到只有一个类
有时为了简化代码的大小,尽可能的压缩apk的大小。就不能再使用大而全的框架了。
4、在线Json解析
/////---------------------------
1、概念
Gson是谷歌发布的一个json解析框架
2、如何获取
github:https://github.com/google/gson
android studio使用
1
compile 'com.google.code.gson:gson:2.7'
查看 最新版本号
下载最新的jar包 ,http://search.maven.org/#search%7Cga%7C1%7Ccom.google.code.gson
3、基于Gson封装的简单工具类JsonUtil
package com.zyj.app.util;
public class JsonUitl {
private static Gson mGson = new Gson();
/**
* 将json字符串转化成实体对象
* @param json
* @param classOfT
* @return
*/
public static Object stringToObject( String json , Class classOfT){
return mGson.fromJson( json , classOfT ) ;
}
/**
* 将对象准换为json字符串 或者 把list 转化成json
* @param object
* @param <T>
* @return
*/
public static <T> String objectToString(T object) {
return mGson.toJson(object);
}
/**
* 把json 字符串转化成list
* @param json
* @param cls
* @param <T>
* @return
*/
public static <T> List<T> stringToList(String json ,Class<T> cls ){
Gson gson = new Gson();
List<T> list = new ArrayList<T>();
JsonArray array = new JsonParser().parse(json).getAsJsonArray();
for(final JsonElement elem : array){
list.add(gson.fromJson(elem, cls));
}
return list ;
}
}
4、JsonUtil的简单测试
4.1、定义bean对象
package com.zyj.app.bean;
/**
* Created by ${zyj} on 2016/9/5.
*/
public class Me {
String name ;
String age ;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
4.2、测试代码
List<Me> list = new ArrayList<>() ;
Me me1 = new Me() ;
me1.setName( "name111");
me1.setAge( "age111");
Me me2 = new Me() ;
me2.setName( "name222");
me2.setAge( "age222");
Me me3 = new Me() ;
me3.setName( "name333");
me3.setAge( "age333");
list.add( me1 ) ;
list.add( me2 ) ;
list.add( me3 ) ;
//测试一:把list对象转换成json字符串
String json1 = JsonUitl.objectToString( list ) ;
//日志打印
KLog.d( "测试一 " + json1 );
//测试二:把json字符串转化成list集合
List<Me> listMe = JsonUitl.stringToList( json1 , Me.class ) ;
//日志打印
for ( Me meTest : listMe ){
KLog.d( "测试二 " + "name: " + meTest.getName() + " age: " + meTest.getAge() );
//测试三 : 把对象转化成json字符串
String jsonTest3 = JsonUitl.objectToString( meTest ) ;
KLog.d( "测试三 " + jsonTest3 );
}
4.3、测试结果
测试一 [{"age":"age111","name":"name111"},{"age":"age222","name":"name222"},{"age":"age333","name":"name333"}]
测试二 name: name111 age: age111
测试三 {"age":"age111","name":"name111"}
测试二 name: name222 age: age222
测试三 {"age":"age222","name":"name222"}
测试二 name: name333 age: age333
测试三 {"age":"age333","name":"name333"}
json--处理框架的更多相关文章
- Spring Boot默认的JSON解析框架设置
方案一:启动类继承WebMvcConfigurerAdapter,覆盖方法configureMessageConverters ... @SpringBootApplication public cl ...
- 十七、springboot配置FastJson为Spring Boot默认JSON解析框架
前提 springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用 1.引入fastjson依赖库: maven: <dependen ...
- springboot使用fastJson作为json解析框架
springboot使用fastJson作为json解析框架 springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用 〇.搭建spri ...
- 移动架构-json解析框架
JSON在现在数据传输中占据着重要地位,相比于xml,其解析和构成都要简单很多,第三方的解析框架也不胜枚举,这里之所以要自定义一个json解析框架,一方面是更好的了解json解析过程,另一方面是有时候 ...
- JSON数据处理框架Jackson精解第一篇-序列化与反序列化核心用法
Jackson是Spring Boot默认的JSON数据处理框架,但是其并不依赖于任何的Spring 库.有的小伙伴以为Jackson只能在Spring框架内使用,其实不是的,没有这种限制.它提供了很 ...
- Snack3 3.2 发布,轻量的Json+Jsonpath框架
Snack3 是一个轻量的 JSON + Jsonpath 框架. 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计.其下一切数据都以ONode表 ...
- Android Json处理框架
1.Android 中的Json解析工具fastjson .序列化.反序列化 2.Android Gson的使用总结 3.Android-JSONTool 一个简易的Json框架类,小到只有一个类 有 ...
- 速度最快的Json序列框架Jil,入门动手实录
好吧,我又先要贴出跑分图了,出处 Jil是一个面向Json的序列化框架,在Nuget上可以下载到 支持数据类型 值得一提的是,Guid指定带破折号格式(44B2673B-B5CA-477B-A8EA- ...
- 4. 使用别的json解析框架【从零开始学Spring Boot】
转载:http://blog.csdn.net/linxingliang/article/details/51585921 此文章已经废弃,请看新版的博客的完美解决方案: 78. Spring Boo ...
- SpringMVC+Hibernate+Junit4+json基本框架近乎0配置
公司是做APP开发的,须要后台来提供接口,于是乎,这个任务就交给我,经过重复的尝试,学习和參考别人的demo,最终搭出自己还算惬意的框架.SpringMVC+Sping3+Hibernate4+Jun ...
随机推荐
- hdu3642 Get The Treasury 线段树--扫描线
Jack knows that there is a great underground treasury in a secret region. And he has a special devic ...
- Go Example--通道
package main import "fmt" func main() { //string类型通道 messages := make(chan string) //往通道写入 ...
- LeetCode - Partition Labels
A string S of lowercase letters is given. We want to partition this string into as many parts as pos ...
- node学习笔记之io.sockets
socket.get和socket.set函数已经失效,代码修改如下所示: 服务器端: var httpd = require('http').createServer(handler); var i ...
- 每天进步一点点-写完睡觉-周一工作(java基本数据类型所占的字节和IO流读取的字符和字节)
- Java打印九九乘法表及倒打九九乘法表
//正打 public class Test3 { public static void main(String[] args) { for(int j=1;j<10;j++){ for(int ...
- day43 数据库学习egon的博客 视图、触发器、事务、存储过程、函数
一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的 ...
- Python time & datetime模块
time 模块 时间分为三种格式: 时间戳:表示1970年1月1日之后的秒 结构化时间:元组包含了:年.日.星期等... 格式化字符串:格式可以自定义 时间戳: import time time_st ...
- python 属性的访问权限,_,__,__XXX__
1. 非私有变量,可以随意调用和修改 在class内部,有属性和方法,如下面的class Student 有name和score class Student(object): def __init__ ...
- 原码,反码与补码的概念以及Java中数的存储方式
*原码,反码,补码必须满8位,不足在前填0: 1,原码:用符号位和数值位表示一个带符号的数 + -> 0 - -> 1 表示数的范围-127~ ...