alibaba 实体转json_com.alibaba.fastjson 转换List Map等对象
原文:http://www.cnblogs.com/goody9807/p/4244862.html
本文讲解2点:
1. fastjson生成和解析json数据
(举例:4种常用类型:JavaBean,List,List,List)
2.通过一个android程序测试fastjson的用法。
fastjson简介:
Fastjson是一个Java语言编写的高性能功能完善的JSON库。fastjson采用独创的算法,将parse的速度提升到极致,超过所有json库,包括曾经号称最快的jackson。并且还超越了google的二进制协议protocol buf。Fastjson完全支持http://json.org的标准,也是官方网站收录的参考实现之一。支持各种JDK类型。包括基本类型、JavaBean、Collection、Map、Enum、泛型等。支持JDK 5、JDK 6、Android、阿里云手机等环境。
一. fastjson生成json字符串(JavaBean,List,List,List)
String jsonStrng = JSON.toJSONString(object);
二. fastjson 解析json字符串为四种类型
1. JavaBean
Person person = JSON.parseObject(jsonString, Person.class);
2. List
List listPerson =JSON.parseArray(jsonString, Person.class);
3. List
List listString = JSON.parseArray(jsonString, String.class);
4. List>
List> listMap = JSON.parseObject(jsonString, new TypeReference>>(){}); (注意:此处可看出fastjson反射机制比gson更准确, id = 1001 通过fastjson反射仍是 id = 1001 , 而通过gson反射结果 为 id =1001.0 ,
JSON解析器fastjson(阿里巴巴出品,版本1.1.26),如果定义了JSONObject为{“JACKIE_ZHANG”:”张学友”,”ANDY_LAU”:”刘德华”,”LIMING”:”黎明”,”Aaron_Kwok”:”郭富城”},那么读取值时,KEY顺序无序,测试代码:
import com.alibaba.fastjson.JSONObject;
/**
* Created by wangzhenfei on 14-4-15.
*/
public class FastJsonTest {
public static void main(String[] args){
String jsonStr = “{\”JACKIE_ZHANG\”:\”张学友\”,\”ANDY_LAU\”:\”刘德华\”,\”LIMING\”:\”黎明\”,\”Aaron_Kwok\”:\”郭富城\”}” ;
//做5次测试
for(int i=0,j=5;i
{
JSONObject jsonObject = JSONObject.parseObject(jsonStr) ;
for(java.util.Map.Entry entry:jsonObject.entrySet()){
System.out.print(entry.getKey()+”-“+entry.getValue()+”\t”);
}
System.out.println();//用来换行
}
}
}
LIMING-黎明 Aaron_Kwok-郭富城JACKIE_ZHANG-张学友ANDY_LAU-刘德华
Aaron_Kwok-郭富城 ANDY_LAU-刘德华LIMING-黎明JACKIE_ZHANG-张学友
Aaron_Kwok-郭富城 JACKIE_ZHANG-张学友ANDY_LAU-刘德华LIMING-黎明
LIMING-黎明 ANDY_LAU-刘德华JACKIE_ZHANG-张学友Aaron_Kwok-郭富城
JACKIE_ZHANG-张学友 LIMING-黎明ANDY_LAU-刘德华Aaron_Kwok-郭富城
解决办法:定义为JSONArray,代码如下:
import com.alibaba.fastjson.JSONArray;
/**
* Created by wangzhenfei on 14-4-15.
*/
public class FastJsonTest {
public static void main(String[] args){
String jsonStr = “[{\”JACKIE_ZHANG\”:\”张学友\”},{\”ANDY_LAU\”:\”刘德华\”},{\”LIMING\”:\”黎明\”},{\”Aaron_Kwok\”:\”郭富城\”}]” ;
//做5次测试
for(int i=0,j=5;i
{
JSONArray jsonArray = JSONArray.parseArray(jsonStr);
for(int k=0;k
System.out.print(jsonArray.get(k) + “\t”);
}
System.out.println();//用来换行
}
}
}
运行结果为:[plain]
{“JACKIE_ZHANG”:”张学友”} {“ANDY_LAU”:”刘德华”}{“LIMING”:”黎明”}{“Aaron_Kwok”:”郭富城”}
{“JACKIE_ZHANG”:”张学友”} {“ANDY_LAU”:”刘德华”}{“LIMING”:”黎明”}{“Aaron_Kwok”:”郭富城”}
{“JACKIE_ZHANG”:”张学友”} {“ANDY_LAU”:”刘德华”}{“LIMING”:”黎明”}{“Aaron_Kwok”:”郭富城”}
{“JACKIE_ZHANG”:”张学友”} {“ANDY_LAU”:”刘德华”}{“LIMING”:”黎明”}{“Aaron_Kwok”:”郭富城”}
{“JACKIE_ZHANG”:”张学友”} {“ANDY_LAU”:”刘德华”}{“LIMING”:”黎明”}{“Aaron_Kwok”:”郭富城”}
如果就想要定义为JSONObject,而不是JSONArray,可以选用其他JSON解析器,个人推荐使用google的gson,文档明显比fastjson好很多(从这里可以看出阿里巴巴和谷歌的差距):[java]
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
/**
* Created by wangzhenfei on 14-4-15.
*/
public class FastJsonTest {
public static void main(String[] args){
String jsonStr = “{\”JACKIE_ZHANG\”:\”张学友\”,\”ANDY_LAU\”:\”刘德华\”,\”LIMING\”:\”黎明\”,\”Aaron_Kwok\”:\”郭富城\”}” ;
//做5次测试
for(int i=0,j=5;i
{
JsonObject jsonObject = (JsonObject) new JsonParser().parse(jsonStr);
for(java.util.Map.Entry entry:jsonObject.entrySet()){
System.out.print(entry.getKey()+”-“+entry.getValue()+”\t”);
}
System.out.println();//用来换行
}
}
}
运行结果:[plain]
JACKIE_ZHANG-“张学友” ANDY_LAU-“刘德华” LIMING-“黎明” Aaron_Kwok-“郭富城”
JACKIE_ZHANG-“张学友” ANDY_LAU-“刘德华” LIMING-“黎明” Aaron_Kwok-“郭富城”
JACKIE_ZHANG-“张学友” ANDY_LAU-“刘德华” LIMING-“黎明” Aaron_Kwok-“郭富城”
JACKIE_ZHANG-“张学友” ANDY_LAU-“刘德华” LIMING-“黎明” Aaron_Kwok-“郭富城”
JACKIE_ZHANG-“张学友” ANDY_LAU-“刘德华” LIMING-“黎明” Aaron_Kwok-“郭富城”
alibaba 实体转json_com.alibaba.fastjson 转换List Map等对象相关推荐
- 使用fastjson的parseObject方法将json字符串转换成Map 或者List
fastjson 转换成map HashMap<String,String> map = JSON.parseObject(jsonStr,new TypeReference<Has ...
- alibaba 实体转json_JAVA中使用alibaba fastjson实现JSONObject、Object、Json字符串的转换...
Object转JSON字符串: String jsonStr = JSONObject.toJSONString(object); JSON字符串转JSONObject: JSONObject jso ...
- fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法
fastjson转换包含date类型属性的对象时报错com.alibaba.fastjson.JSONException: For input string 解决方法 pojo里面的date属性上要加 ...
- fastjson转换json字符串key的首字母小写变大写的解决办法
问题描述 在开发过程中,由于接口文档的描述,要求json字符串的key首字母为大写,而java 的规范要求在定义bean的时候,成员属性是首字母小写的驼峰格式,java的基本规范一定要遵守,否则会出现 ...
- fastjson判空_fastjson JSON 对象为空保留null
fastjson,对象转json字符串的过程中对value为null的值的一些处理 前言 fastjson是一个非常好用的java库,用于操作对象json序列化等等. 问题 最近在写代码的时候遇到问题 ...
- java pojo 转 map_如何将POJO对象转换成MAP
展开全部 很多情况需要将取得的POJO对象转换成其他表现形式,如Key-Value的Map形式,用于数据展现.本文介绍如何e5a48de588b662616964757a686964616f31333 ...
- 使用Python,OpenCV转换颜色空间,追踪对象的轨迹
使用Python,OpenCV转换颜色空间,追踪对象的轨迹 1. 效果图 2. 源码 参考 这篇博客可以看作是之前俩篇博客的融合,将介绍如何使用Python,OpenCV转换颜色空间,并利用HSV追踪 ...
- 把json对象串转换成map对象
2019独角兽企业重金招聘Python工程师标准>>> /** * nc只支持简单的 * 把json对象串转换成map对象 * @param jsonObjStr e ...
- golang 开发 Struct 转换成 map 两种方式比较
原文链接:https://www.jianshu.com/p/81c4304f6d1b 最近做Go开发的时候接触到了一个新的orm第三方框架gorose,在使用的过程中,发现没有类似beego进行直接 ...
最新文章
- 记事本写python怎么运行-从头学Python之编写可执行的.py文件
- php xml 互相转换
- 如何优雅的处理业务逻辑中的定时和延时问题?
- python-css反爬之svg映射
- 聚合登录平台网站源码 PHP聚合登录源码
- mysql连接查询on_MySql 连接查询中 on 和 where 的区别
- 应用密码学的笑话之MD5+Salt不安全
- js判断对象为空_在 JavaScript 中如何检查对象为空
- 在Linux下查看系统版本信息命令总结
- 16. Window close() 方法
- mysql表添加字段_怎么给mysql数据表添加字段
- Stream Processing With Flink (7) 状态算子和用户函数
- 此计算机缺少vc2005_spl_with_atl_fix_redist解决问题
- 计算机毕业设计——选题参考
- 红外图像的特征提取 matab
- ei拼音的四个声调对应的字_幼儿园学前班拼音教案复习ei以及四声调
- python+selenium 定位元素踩过的坑
- 二分查找及时间复杂度
- java midi版本_java-为特定MIDI设备开发软件
- # 后端开发技巧、常用规范
热门文章
- 运维编排场景系列----给实例加到SLS机器组
- 亿级消息系统的核心存储:Tablestore发布Timeline 2.0模型
- 内含福利|CSDN携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!
- 你想知道的容器混合云问题,答案都在这里!
- ZooKeeper的十二连问,你顶得了嘛?
- 我是如何用6个月,从0编程经验变成数据科学家的?
- 亚信科技高念书:“一巩固三发展”五年打造百亿企业
- OpenStack网络的下一步原来这么走 | 技术头条
- springboot Java实现多文件的zip压缩操作 + 通过浏览器下载文件的两种方式
- Springboot整合Quartz集群部署以及配置Druid数据源