alibaba架包FastJson使用例子
alibaba的架包FastJson可以对json字符串进行快捷的类型转换。下面是一些各种类型转换的使用例子。
一、下载FastJson的架包,并导入项目中,如下:
Maven项目pom.xml配置如下:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.32</version>
</dependency>
二、附上代码例子,如下:
1、创建2个实体类,供后面例子使用,如下:
public class School {
private String id;
private String name;
List<User> students = new ArrayList<User>();
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<User> getStudents() {
return students;
}
public void setStudents(List<User> students) {
this.students = students;
}
}
public class User {
private String id;
private String name; public User(){ }
public User(String id, String name){
this.id = id;
this.name = name;
} public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2、Json字符串与Map、List、object之间的相互转换例子,如下:
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; public class TestFastJson { public static void main(String[] args){
json2JsonObject();//将Json字符串转换为JSONObject对象
json2JavaBean();//将Json字符串转换为JavaBean对象
json2JsonArray();//将Json字符串转换为JSONArray对象
json2JavaBeanList();//将Json字符串转换为JavaBean的集合
javaBean2Json();//将JavaBean转换为Json格式的数据
javaBean2JsonObject();//将JavaBean转换为JSONObject对象
json2ListInMap();//从Json字符串的Map中获取List对象
list2JsonInMap();//将含list的Map对象转换为Json字符串
} private static void json2JsonObject() {
String s = "{\"name\":\"peter\"}";
JSONObject object = JSON.parseObject(s);
System.out.println(object.get("name"));
} private static void json2JavaBean() {
String s = "{\"id\":\"17051801\",\"name\":\"lucy\"}";
User user = JSON.parseObject(s, User.class);
System.out.println(user.getId());
System.out.println(user.getName());
} private static void json2JsonArray() {
String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
JSONArray array = JSON.parseArray(s);
for (int i = 0; i < array.size(); i++) {
//JSONArray中的数据转换为String类型需要在外边加"";不然会报出类型强转异常!
String str = array.get(i)+"";
JSONObject object = JSON.parseObject(str);
System.out.println(object.get("name"));
}
} private static void json2JavaBeanList() {
String s = "[{\"id\":\"17051801\",\"name\":\"lucy\"},{\"id\":\"17051802\",\"name\":\"peter\"}]";
List<User> list = JSON.parseArray(s, User.class);
for (User user : list) {
System.out.println(user.getName());
}
} private static void javaBean2Json() {
User user = new User("17051801", "lucy");
String string = JSON.toJSONString(user);
System.out.println(string);
} private static void javaBean2JsonObject() {
User user = new User("17051801", "lucy");
JSONObject json = (JSONObject) JSON.toJSON(user);
System.out.println(json.get("id"));
} private static void json2ListInMap() {
String s = "{json:[{id:\"17051801\",\"name\":\"lucy\"},{id:\"17051802\",\"name\":\"peter\"},"
+ "{id:\"17051803\",\"name\":\"tom\"},{id:\"17051804\",\"name\":\"lily\"}]}";
//将Json字符串转换为JSONObject对象,并取出list对象的值
JSONObject object = JSON.parseObject(s);
Object objArray = object.get("json");
String str = objArray+"";
//方式1:转换成JSONArray对象形式
JSONArray array = JSON.parseArray(str);
for (int i = 0; i < array.size(); i++) {
JSONObject obj = JSON.parseObject(array.get(i)+"");
System.out.println(obj.get("name"));
}
//方式2:转换成List<JavaBean>形式
List<User> list = JSON.parseArray(str, User.class);
for (User user : list) {
System.out.println(user.getName());
}
} private static void list2JsonInMap() {
//方式1:构建一个带有list的JavaBean对象
School school = new School();
school.setId("1");
school.setName("schoolA"); User user1 = new User();
user1.setId("17051801");
user1.setName("lucy");
User user2 = new User();
user2.setId("17051802");
user2.setName("peter"); school.getStudents().add(user1);
school.getStudents().add(user2);
//将JavaBean对象转换成Json字符串
String string1 = JSON.toJSONString(school);
System.out.println(string1); //方式2:构建一个带有list的Map对象
Map<String, Object> map1 = new HashMap<String,Object>();
map1.put("id", "17051801");
map1.put("name", "lucy"); Map<String, Object> map2 = new HashMap<String,Object>();
map2.put("id", "17051802");
map2.put("name", "peter"); List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
list.add(map1);
list.add(map2); Map<String, Object> map = new HashMap<String,Object>();
map.put("id", "1");
map.put("name", "schoolA");
map.put("students", list);
//将map对象转换成Json字符串
String string2 = JSON.toJSONString(map);
System.out.println(string2);
}
}
alibaba架包FastJson使用例子的更多相关文章
- JSONObject相关依赖架包下载(Maven依赖下载)
一.开发场景Java开发当中经常需要Json格式的数据,这就用到JSONObject类,本文章只提供以下两种JSONObject对应架包的下载方式.1.com.alibaba.fastjson.JSO ...
- 【报错】spring整合activeMQ,pom.xml文件缺架包,启动报错:Caused by: java.lang.ClassNotFoundException: org.apache.xbean.spring.context.v2.XBeanNamespaceHandler
spring版本:4.3.13 ActiveMq版本:5.15 ======================================================== spring整合act ...
- Spring 框架的架包分析、功能作用、优点,及jar架包简介
Spring 框架的架包详解 Spring的作用 Spring的优势 由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...
- Spring MVC 框架的架包分析,功能作用,优点
由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...
- 【pom.xml 依赖】使用net.sf.json-lib-2.4-jdk15.jar所需要的其他依赖架包 以及其一直在pom.xml报错的问题
特此声明: json-lib-2.4-jdk15.jar仅它本身不够,必须如下的几个依赖架包都有才能使用!!! 首先 将.json-lib-2.4-jdk15.jar以及其相关的依赖架包的正确配置给出 ...
- Maven管理项目架包
最近一直在用Maven管理项目的架包,从而发现了几个不错的官方或者非官方的网站. http://mvnrepository.com/artifact/com.ning 这个是我刚刚用来找HTTP开发 ...
- 解决npm install安装了太多架包的问题
比如我安装gulp时,会多出很多无用的包,如下图: 经过查询,原来是npm升级了导致的,在npm3.0以上的版本,包的依赖不再安装在每个架包的node_modules文件夹内,而是安装在顶层的node ...
- Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有
Android高效率编码-细节,控件,架包,功能,工具,开源汇总 其实写博客的初衷也并不是说什么分享技术,毕竟咱还只是个小程序员,最大的目的就是对自我的知识积累,以后万一编码的时候断片了,也可以翻出来 ...
- java 发架包
// 完整发布流程 clean compile deploy install -U -DskipTests // 把架包安装到本地,跳过测试 install -Dmaven.test.skip=tru ...
随机推荐
- windows第四层负载均衡--基于NLB负载均衡
上面有一篇文章说windows第七层负载均衡,这次讲讲第四层负载均衡 TCP/IP协议族,第七层是应用层,第四层是传输层.第四层负载均衡主要通过IP进行转化. 一些优秀的第四层负载均衡软件,速度可以接 ...
- Linux audio驱动模型
linux驱动 alsa模型: Linux ALSA声卡驱动之一:ALSA架构简介 Linux ALSA声卡驱动之二:声卡的创建 Linux ALSA声卡驱动之三:PCM设备的创建 Linux ALS ...
- python的while循环
age_of_laochuanzhang = 56 conut = 0 while True: if conut == 3: print("输入次数上限") break age = ...
- 基于Flask实现博客开发--准备工作
背景说明 本项目是基于<深入理解flask>一书,主要是用来记录学习历程和交流心得,所以写得不好请大神勿喷. 准备工作 virtualenv介绍 也许 Virtualenv 是你在开发中最 ...
- H5中的web worker示例demo分析
web worker 是运行在后台的 JavaScript,不会影响页面的性能. 什么是 Web Worker? 当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成. web w ...
- Vue入门
一.引入vue 方法一:下载vue.js,然后像引用jquery一样,在HTML中使用script标签引入 <script src="https://unpkg.com/vue/dis ...
- C#初学者们,请离代码生成器远点!!!
在程序开发的世界里,各路前辈们为了提高所谓的编码速度,搞出了各式各样的代码生成器,来避免所谓的重复的人为机械地粘贴和复制代码,以此来提高生产力. 早几年前,我可能会认为这样的做法真得有用,特别是在编码 ...
- TCP/IP(三)数据链路层~1
前言 其实前面一堆讲的物理层的概念,会感觉特别的难理解,因为这是一个非常强大的计算机网络体系的底层知识,没有关系!我们大致了解一下就行了. 一.数据链路层概述 这是百度的简介 看图:理解一下,数据链路 ...
- C/C++中peek函数的原理及应用
C++中的peek函数 该调用形式为cin.peek() 其返回值是一个char型的字符,其返回值是指针指向的当前字符,但它只是观测,指针仍停留在当前位置,并不后移.如果要访问的字符是文件结束符,则函 ...
- noip2015 提高组 解题报告
完美退役...说好的不卡常呢QAQ day1: T1:模拟题?..考察选手将题目描述翻译成代码的能力233 //其实真相是考验rp..论代码雷同的危害233 T2:简单图论,每个点出度为1所以是基环内 ...