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 ...
随机推荐
- JPG .vs. PNG
A summary of comparison between JPEG and PNG JPEG Pros Smaller file size than PNG Widely suppported ...
- linux搭建SS服务
基本准备: 购买主机:www.virmach.com LINUX系统操作经验:vim , apt-get 等命令的使用 putty.exe连接ssh工具的使用 开始 使用putty连接上去,并输入密码 ...
- 【ASP.NET Core】准备工作:在 Windows 10 上配置 Linux 子系统
ASP.NET Core 其实比传统的 ASP.NET 要简单很多,而且也灵活很多,并且可以跨平台独立运行. 在 Windows 平台上,我们只要在安装 Visual Studio 的时候选择跨平台的 ...
- Windows下使用pip安装mysql-python
安装的过程很煎熬,留个爪,希望对其他人有帮助. 先声明我安装前的电脑配置: Win10: Python2和Python3共存(备注一个好用的方法,感谢知乎大神:https://www.zhihu.co ...
- Python3 决策树
# -*- coding: utf-8 -*-"""Created on Fri Dec 29 10:18:04 2017 @author: markli"&q ...
- UINavigationController 返回手势与 leftBarButtonItem
UINavigationController 返回手势与 leftBarButtonItem UINavigationController 自带从屏幕左侧边缘向右滑动的返回手势,可以通过这个手势实现 ...
- MongoDB入门学习笔记之简介与安装配置
一.MongoDB简介 1.文档数据库 MongoDB是一款开源的文档型非关系数据库,具有高性能.高可靠性和自动扩展等特点.MongoDB中的每一条记录是一个文档,其数据存储结构为键/值对,类似JSO ...
- 《SpringMVC从入门到放肆》三、DispatcherServlet的url-pattern配置详解
上一篇我们详细解释了一下SrpingMVC的执行流程以及一些默认的配置,在Spring的思想中,就是默认大于配置.今天我们来详细的研究一下DispatcherServlet的url-pattern配置 ...
- MATLAB学习笔记
魔方矩阵(magic(阶数)) 魔方矩阵又称幻方,是有相同的行数和列数,并在每行每列.对角线上的和都相等的矩阵.魔方矩阵中的每个元素不能相同.你能构造任何大小(除了2x2)的魔方矩阵. 希尔伯特矩阵( ...
- Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals)爆零记
昨晚一个瓜皮说今晚有cf,听说是晚间场,我瞅了一眼,娃,VK Cup,上分的好机会,看着比赛时间就有点心酸了,0:35,当时一直在纠结要不要打的问题,当时想着应该不难吧,要不打一下吧,要不还是看看题先 ...