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 ...
随机推荐
- JAVA 使用原生jdbc批量添加,表被锁住问题
今天用jdbc批量添加数据的时候遇到了一个问题,当数据添加成功过后,再想对该表进行操作发现表被锁住了,检查了下代码发现事务提交了呀!!!!!!!!!!!! 去网上查了大半天的资料才发现问题,在conn ...
- ArrayList之foreach循环删除倒数第二个元素,不触发fail-fast机制
今天一朋友问了个问题,对于如下一段代码,运行后会有怎样的结果? public class ArrayListTest { public static void main(String[] args) ...
- 从excel 导入数据绘制 散点图
import xlrdimport matplotlib.pyplot as plt bok = xlrd.open_workbook(r'test.xls') sht = bok.sheets()[ ...
- python中字符串离散化的例子
''' 问题:1.假设DataFrame中有一列名为type,其字段中内容为a,b,c 等用,隔开的值,如: type a,b,c a,f,x b,c,e ...统计type中每个类型出现的次数 并绘 ...
- React 之 render props 的理解
1.基本概念 在调用组件时,引入一个函数类型的 prop,这个 prop定义了组件的渲染方式. 2.回调渲染 回顾组件通信的几种方式 父-> 子 props 子-> 父 回调.消息通道 任 ...
- machine learning(11) -- classification: advanced optimization 去求cost function最小值的方法
其它的比gradient descent快, 在某些场合得到广泛应用的求cost function的最小值的方法 when have a large machine learning problem, ...
- 2019-2020-1 20199312《Linux内核原理与分析》第三周作业
计算机的三大法宝:程序存储计算机.函数调用.中断 堆栈的作用:记录函数调用框架.传递函数参数.保存返回值地址.提供函数内部局部便量的存储空间. 堆栈相关的寄存器 ESP:堆栈指针,指向堆栈栈顶 EBP ...
- django rest framework框架中都有那些组件
1.权限 2.认证 3.访问频率 4.序列化 5.路由 6.视图 7.分页 8.解析器 9.渲染器 规定页面显示的效果(无用) https://www.cnblogs.com/Rivend/p/118 ...
- 银川区域赛现场赛 Pot!!【线段树】
给定两个操作: MULTIPLY L R x 区间里都乘以一个数x MAX L R : 计算区间内一个2,3,5,7个数最大值. 思路:维护4个最大值.蓝瘦. /** 有 n 个数和 5 种操作 a ...
- sql server newid() 的用法
sql newid()随机函数 从A表随机取2条记录,用SELECT TOP 10 * FROM ywle order by newid()order by 一般是根据某一字段排序,newid() ...