com.alibaba.fastjson.JSONObject;的使用
转:
com.alibaba.fastjson.JSONObject;的使用
1 POM.xml
- <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
- <dependency>
- <groupId>com.alibaba</groupId>
- <artifactId>fastjson</artifactId>
- <version>1.2.51</version>
- </dependency>
2 附上代码例子
2.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.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字符串
- stringToMap();//json字符串转map
- mapToString();//map转json字符串
- mapToJsonObject();//map转json对象
- testList2String();//list转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);
- }
- private static void stringToMap(){
- String str = "{\"age\":\"24\",\"name\":\"cool_summer_moon\"}";
- JSONObject jsonObject = JSONObject.parseObject(str);
- //json对象转Map
- Map<String,Object> map = (Map<String,Object>)jsonObject;
- System.out.println("map对象是:" + map);
- Object object = map.get("age");
- System.out.println("age的值是"+object);
- }
- private static void mapToString(){
- Map<String,Object> map = new HashMap<>();
- map.put("age", 24);
- map.put("name", "cool_summer_moon");
- String jsonString = JSON.toJSONString(map);
- System.out.println("json字符串是:"+jsonString);
- }
- private static void mapToJsonObject(){
- Map<String,Object> map = new HashMap<>();
- map.put("age", 24);
- map.put("name", "cool_summer_moon");
- JSONObject json = new JSONObject(map);
- System.out.println("Json对象是:" + json);
- }
- /**
- * 测试包装类型的List转换为json字符串
- */
- public static void testList2String() {
- List<Long> longs = new ArrayList<Long>();
- longs.add(1L);
- longs.add(2L);
- longs.add(3L);
- String actual = JSON.toJSONString(longs);
- Assert.assertEquals("[1,2,3]", actual);
- }
- }
com.alibaba.fastjson.JSONObject;的使用的更多相关文章
- 探索RequestBody报com.alibaba.fastjson.JSONObject cannot be cast to xxx
今天使用RequestBody接受前端传过来的参数,以前接受字符串数组非常成功,这次把形参改成了List<User>,原本以为顺利接受参数并映射成User的list结构,结果竟然在我取us ...
- 42-字符串到json 的错误 com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String
json: {"updated_at":1551780617,"attr":{"uptime_h":3,"uptime_m&quo ...
- No message body writer has been found for class com.alibaba.fastjson.JSONObject, ContentType: */*
1:当使用 cxf 发布服务时,要求返回值类型为xml,或者json等 @Path("/searchProductByText") @GET @Produces({"ap ...
- net.sf.json.JSONOBJECT.fromObject 与 com.alibaba.fastjson.JSONObject.parseObject
文章待补充,先写写以下知识点好了. NULL值处理之 net.sf.json.JSONObject 和 com.alibaba.fastjson.JSONObject区别 JSON作为一个轻量级的文本 ...
- java后台接收json数据,报错com.alibaba.fastjson.JSONObject cannot be cast to xxx
从前台接收json封装的list数据,在后台接收时一直报错,com.alibaba.fastjson.JSONObject cannot be cast to xxx, 使用这种方式接收可以接收 @R ...
- com.alibaba.fastjson.JSONObject循环给同一对象赋值会出现"$ref":"$[0]"现象问题
1.今天定义了一个JSONObject对象,引用的com.alibaba.fastjson.JSONObject,循环给这个对象赋值出现"$ref":"$[0]" ...
- com.alibaba.fastjson.JSONObject之对象与JSON转换方法
com.alibaba.fastjson.JSONObject时经常会用到它的转换方法,包括Java对象转成JSON串.JSON对象,JSON串转成java对象.JSON对象,JSON对象转换Java ...
- Java-Class-I:com.alibaba.fastjson.JSONObject
ylbtech-Java-Class-I:com.alibaba.fastjson.JSONObject 1.返回顶部 1.1.import com.alibaba.fastjson.JSON;imp ...
- com.alibaba.fastjson.JSONObject
package com.alibaba.fastjson; import java.util.Date; import java.util.List; import com.alibaba.fastj ...
随机推荐
- K8S 1.12大特性最快最深度解析:Kubernetes CSI Snapshot(下)
Kubernetes CSI Snapshot(下篇) 目标目前在Kuberentes中,卷插件仅支持配置空的存储卷.随着新的存储功能(包括卷快照和卷克隆)的提出,因此需要支持配置卷时数据填充以.例 ...
- FastDateFormat日期工具类
原文:https://blog.csdn.net/u013823538/article/details/80197476 public class DateUtil { public static f ...
- 软件测试_Loadrunner_性能测试_脚本优化_关联_手动关联
在写文章之前写一下自己的心路历程,录制脚本主要是上传图片并返回查询结果的过程.录制完脚本后发现函数中URl地址中有图片ID后台随机生成的32位随机数,并且每次上传图片id都会变化.我就上网搜索了一些解 ...
- Socket实现client和server端通信(Java)(转)
转自: https://blog.csdn.net/yayun0516/article/details/50819147 https://www.jianshu.com/p/2d4f223f1462 ...
- P2458 [SDOI2006]保安站岗[树形dp]
题目描述 五一来临,某地下超市为了便于疏通和指挥密集的人员和车辆,以免造成超市内的混乱和拥挤,准备临时从外单位调用部分保安来维持交通秩序. 已知整个地下超市的所有通道呈一棵树的形状:某些通道之间可以互 ...
- UML再论关系extend和include
我在画用例图时,图中既有extend关系也有include关系,师父就问我这两种关系的区别,我在画的时候确实查阅了很多资料,可是在问的时候还是回答不上来,这就是这篇博客得来的缘由了. [include ...
- [Functional Programming] Rewrite a reducer with functional state ADT
For example we have a feature reducer like this: // selectCard :: String -> Action String export ...
- Centos7 安装相关软件
1.安装 wget : yum -y install wget
- linux 安装Apache服务器
这篇文章先别看,,有些地方我不是很明白,写错了一些地方,正在咨询会linux的大神 安装好Apache就可以用Http访问或者下载电脑的文件了 我还是用 连接我的linux电脑 咱把Apache安装到 ...
- bzoj 5206
$n$ 点 $m$ 边图的有限制三元环个数 首先将所有左右端点并且属性相同的边的权值相加,合并为一条边 在这只之前得先排序排序之前得先判断是否需要交换左右端点的位置 T_T 然后统计三元环 补充说明按 ...