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 ...
随机推荐
- PAT_B1013
这道题就是一道打印素数表的题目,本人使用的是筛选法,用bool数组记录是否为素数,每一次筛掉本轮数字的倍数,如果当前数字bool数组对应位置为false,则为素数. 这道题的坑是:你不知道最大第100 ...
- linux网络编程之socket编程(十四)
经过令国鸡冻的APEC会之后,北京的冬天终于不冷了,有暖气的日子就是倍儿爽呀~~洗完热水澡,舒服的躺在床上欢乐地敲打着键盘,是件多么幸福的事呀,好了,抒发情感后,正题继续. 上节中已经初步学习了UDP ...
- python数据类型:dict(字典)
一.字典的简单介绍 字典(dict)是python中唯一的一个映射类型.他是以{}括起来的键值对组成. 语法: {key1:value1,key2:value2......} 注意:key必须是不可变 ...
- JS控制SVG缩放+鼠标控制事件
话不多说,直接上代码吧,不行你砍我... <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- python func(*args, **kwargs)
func(*args, **kwargs) *args, **kwargs表示函数的可变参数 *args 表示任何多个无名参数,它是一个tuple **kwargs 表示关键字参数,它是一个dict ...
- Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
链接: https://codeforces.com/contest/1251/problem/B 题意: A palindrome is a string t which reads the sam ...
- margin与padding的区别
当子元素使用padding-top,不会影响到父元素的高度 使用margin-top,则会影响
- Jquery Datepicker DateTimepicker
1.Datepicker http://jqueryui.com/datepicker/ 2.DateTimepicker jquery-ui-timepicker-addon.js http://w ...
- php+超大文件上传
1 背景 用户本地有一份txt或者csv文件,无论是从业务数据库导出.还是其他途径获取,当需要使用蚂蚁的大数据分析工具进行数据加工.挖掘和共创应用的时候,首先要将本地文件上传至ODPS,普通的小文件通 ...
- jQuery相关方法8-----解绑事件
一.解绑事件方法unbind() 用什么方式绑定的事件,最好用对应的方式解绑事件 unbind("事件名字")括号里写上事件名字,就会解除这个事件 unbind()括号里没有参数就 ...