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使用例子的更多相关文章

  1. JSONObject相关依赖架包下载(Maven依赖下载)

    一.开发场景Java开发当中经常需要Json格式的数据,这就用到JSONObject类,本文章只提供以下两种JSONObject对应架包的下载方式.1.com.alibaba.fastjson.JSO ...

  2. 【报错】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 ...

  3. Spring 框架的架包分析、功能作用、优点,及jar架包简介

    Spring 框架的架包详解    Spring的作用     Spring的优势  由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或 ...

  4. Spring MVC 框架的架包分析,功能作用,优点

    由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...

  5. 【pom.xml 依赖】使用net.sf.json-lib-2.4-jdk15.jar所需要的其他依赖架包 以及其一直在pom.xml报错的问题

    特此声明: json-lib-2.4-jdk15.jar仅它本身不够,必须如下的几个依赖架包都有才能使用!!! 首先 将.json-lib-2.4-jdk15.jar以及其相关的依赖架包的正确配置给出 ...

  6. Maven管理项目架包

    最近一直在用Maven管理项目的架包,从而发现了几个不错的官方或者非官方的网站. http://mvnrepository.com/artifact/com.ning  这个是我刚刚用来找HTTP开发 ...

  7. 解决npm install安装了太多架包的问题

    比如我安装gulp时,会多出很多无用的包,如下图: 经过查询,原来是npm升级了导致的,在npm3.0以上的版本,包的依赖不再安装在每个架包的node_modules文件夹内,而是安装在顶层的node ...

  8. Android高效率编码-细节,控件,架包,功能,工具,开源汇总,你想要的这里都有

    Android高效率编码-细节,控件,架包,功能,工具,开源汇总 其实写博客的初衷也并不是说什么分享技术,毕竟咱还只是个小程序员,最大的目的就是对自我的知识积累,以后万一编码的时候断片了,也可以翻出来 ...

  9. java 发架包

    // 完整发布流程 clean compile deploy install -U -DskipTests // 把架包安装到本地,跳过测试 install -Dmaven.test.skip=tru ...

随机推荐

  1. Virtual Box配置CentOS7网络

    1.先管理中配置两个网络 最好的办法就是使用两块网卡,nat(虚拟机访问互联网,使用10.0.2.x段)和host-only(虚拟机和主机互相通信,使用192.168.56.x段) 2.接下来对Cen ...

  2. ASP.NET Core中使用IOC三部曲(二.采用Autofac来替换IOC容器,并实现属性注入)

    前言 本文主要是详解一下在ASP.NET Core中,自带的IOC容器相关的使用方式和注入类型的生命周期. 这里就不详细的赘述IOC是什么 以及DI是什么了.. emm..不懂的可以自行百度. 目录 ...

  3. hibernate使用注解配置索引

    添加普通索引 @Table(name="t_token", indexes={@Index(name="token_strIndex", columnList= ...

  4. 关于java中,json字符串转集合和对象,或者集合转json字符串的解决方法

    1 List集合转成json字符串 //Java集合 List<String> list = new ArrayList<String>(); list.add("a ...

  5. 有关python下二维码识别用法及识别率对比分析

    最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...

  6. datalist标签小结

    在Web设计中,经常会用到如输入框的自动下拉提示,这将大大方便用户的输入.在以前,如果要实现这样的功能,必须要求开发者使用一些Javascript的技巧或相关的框架进行ajax调用,需要一定的编程工作 ...

  7. deeplearning.ai 神经网络和深度学习 week3 浅层神经网络 听课笔记

    1. 第i层网络 Z[i] = W[i]A[i-1] + B[i],A[i] = f[i](Z[i]). 其中, W[i]形状是n[i]*n[i-1],n[i]是第i层神经元的数量: A[i-1]是第 ...

  8. [51nod1410]回文调整

    给一个序列,选择其中一个区间,这个区间内的数字顺序可以随意互换.问有多少这样的选择使得整个序列(不是选择的区间)是一个回文. 说明:为了要使得整个序列是一个回文,可以选择一个区间对里面的数字进行调整, ...

  9. python数据类型(二)

    一.List(列表) List(列表) 是 Python 中使用最频繁的数据类型. 列表可以完成大多数集合类的数据结构实现.列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套). ...

  10. [学习OpenCV攻略][009][从摄像机读入数据]

    cvCreateCameraCapture(设备ID) 创建一个摄像机视频,返回值是CvCapture*类型.设备ID表示设备的编号,如果有多个摄像机设备,-1表示随机选择一个设备. #include ...