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 ...
随机推荐
- Oracle前期工具【1】
目录: 1.oracle下载安装[Oracle11g] 2.Oracle客户端工具下载安装 [sqldeveloper.exe] 3.cmd进入Oracle命令界面操作 4.客户端图形化命令操作 or ...
- python中部分数据类型及其使用方法
1.数据类型: int:整数 str:字符串,一般不存放大量的数据 bool:布尔值,用来判断 只有两个值 True False list:列表,用来存放大量数据[]来表示,里面可以放任何数据类型 ...
- region特征
一: 查看阈值之后的region特征,可以通过特征检测来看,在工具栏上 region特征分三部分: 1.基础特征: region面积,中心,宽高,左上角及右下角坐标,长半轴短半轴椭圆方向,洞数及其面积 ...
- plsql工具使用
作者:lhrbest 作者:张冲andy 作者:jack_孟
- 树状数组例题-数星星,简单题easy,校门外的树2,清点人数
[例1]数星星 天空中有一些星星,这些星星都在不同的位置,每个星星都有个坐标,如果一个星星的左下方(包括正左和正下)有k颗星星,就说这颗星星是k级的. 比如,上图中,星星5是3级的(1,2,4在其左下 ...
- eclipse和scala整合,打包配置文件及打包步骤
我写的是maven项目,pom文件为: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi=" ...
- 062_判断用户输入的是 Yes 或 NO
#!/bin/bashread -p "Are you sure?[y/n]:" surecase $sure iny|Y|Yes|YES) echo "you ...
- QVariantMap 和 QVariant
typedef QVariantMap Synonym for(同义词) QMap<QString, QVariant>. QVariant类型的放入和取出必须是相对应的,你放入一个int ...
- Python多线程笔记(二)
Lock对象 原语锁(互斥锁)是一个同步原语,状态是"已锁定"或者"未锁定"之一.两个方法acquire()和release()用于修改锁的状态.如果状态为已锁 ...
- loj3120 「CTS2019 | CTSC2019」珍珠
link .... 感觉自己太颓废了....还是来更题解吧...[话说写博客会不会涨 rp 啊 qaq ? 题意: 有 n 个物品,每个都有一个 [1,D] 中随机的颜色,相同颜色的两个物品可以配对. ...