java处理json类型数据--阿里巴巴fastjson api常用方法实战
2018-01-20 18:13
911 查看
fastjson介绍
最近工作上经常需要解析json类型数据以及java对象到json类型的互转,特地研究了下阿里巴巴的fastjson,这个是国内用的比较多的json转换api,还有其他的入jackson,谷歌的Gson,后续我再介绍。
废话少说,上例子。
使用方式
1)下载jar包2)maven配置
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.44</version> </dependency>
例子
涉及3个类:User,Organization,FastJsonTestUser类
package com.dylan.json.entity; /** * 用户实体 * * @author xusucheng * @create 2018-01-20 **/ public class User { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
Organization类
package com.dylan.json.entity; import java.util.ArrayList; import java.util.List; /** * 部门实体 * * @author xusucheng * @create 2018-01-20 **/ public class Organization { private int id; private String name; private List<User> userList = new ArrayList<User>(); public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<User> getUserList() { return userList; } public void setUserList(List<User> userList) { this.userList = userList; } }
FastJsonTest类
package com.dylan.json.test; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.dylan.json.entity.Organization; import com.dylan.json.entity.User; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 测试阿里巴巴fastjson * * @author xusucheng * @create 2018-01-20 * * //下面是FastJson的简介:常用的方法! * // Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。 * // public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray * // public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject * // public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean * // public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray * // public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 * // public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本 * // public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本 * // public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的) **/ public class FastJsonTest { public static void main(String[] args) { //json字符串转换为JSONObject jsonToJSONObject(); //json字符串转换为bean jsonToBean(); //bean转json字符串 beanToJson(); //map转换为json字符串 mapToJson(); //json字符串转JSONArray jsonToJSONArray(); } private static void beanToJson() { System.out.println("------------------beanToJson------------------"); User user = new User(); user.setId(1); user.setName("钱多多"); String json = JSON.toJSONString(user,true); System.out.println(json); } private static void jsonToJSONArray() { System.out.println("------------------jsonToJSONArray------------------"); String json="{users:[{\"id\":1,\"name\":\"Dylan\"},{\"id\":2,\"name\":\"Jack\"}]}"; JSONObject jo = JSON.parseObject(json); String jsonArray = jo.get("users").toString(); System.out.println(jsonArray); List<User> userList = JSON.parseArray(jsonArray,User.class); for (User user:userList){ System.out.println(user.getId()+":"+user.getName()); } } //以下是静态方法 private static void jsonToJSONObject() { System.out.println("------------------jsonToJSONObject-----------------"); String json = "{\"id\":1,\"name\":\"Dylan\"}"; JSONObject jsonObject = JSON.parseObject(json); System.out.println(jsonObject.getInteger("id")+":"+jsonObject.getString("name")); } private static void jsonToBean(){ System.out.println("------------------jsonToBean-------------------------"); String json = "{\"id\":1,\"name\":\"dylan\"}"; User user = JSON.parseObject(json,User.class); System.out.println(user.getId()+":"+user.getName()); } private static void mapToJson(){ System.out.println("-------------------mapToJson--------------------------"); Organization organization = new Organization(); organization.setId(1); organization.setName("研发部"); User user1 = new User(); user1.setId(1); user1.setName("钱多多"); User user2 = new User(); user2.setId(2); user2.setName("穷不怕"); organization.getUserList().add(user1); organization.getUserList().add(user2); Map<String,Object> orgMap = new HashMap<String,Object>(); orgMap.put("orgId",organization.getId()); orgMap.put("orgName",organization.getName()); orgMap.put("userList",organization.getUserList()); String json = JSON.toJSONString(orgMap); System.out.println(json); } }
说明
后续如果碰到有其他需求我会在此基础上继续添加,敬请期待!相关文章推荐
- java处理JSON格式数据的常用技术(一)
- JSON以及Java转换JSON的方法(前后端常用处理方法)
- fastJson在java后台转换json格式数据探究(二)--处理数组/List/Map
- JS 对java返回的json格式的数据处理方法
- 工作之余,整理了一下平时处理数据的一些常用的,简单的方法。希望对学习JAVA的朋友有点帮助
- Java中几种常用的数据类型之间转换方法
- java 直接返回Date类型数据给前端,前端的处理方法
- Java后台处理Json格式数据的方法
- JAVA基础 day13 String类和StringBUffer类的常用方法 基本数据类型包装类的学习
- Redis和nosql简介,api调用;Redis数据功能(String类型的数据处理);List数据结构(及Java调用处理);Hash数据结构;Set数据结构功能;sortedSet(有序集合)数
- 阿里巴巴的json转换工具, fastjson 常用的方法。
- JSON数据中DateTime类型的处理方法
- Java中几种常用数据类型之间转换的方法
- JAVA常用的JSON处理库,常用处理方法
- Json数据格式常用处理方法
- Apache HttpComponents 的使用入门(java使用HttpClient访问Api, 使用json.org库处理json数据)
- [javase][json]fastJson在java后台转换json格式数据探究--处理数组/List/Map
- Java中几种常用数据类型之间转换的方法
- FastJson一些常见方法(API):处理JSON变得好简单
- jQuery jqgrid 对含特殊字符json 数据的 Java 处理方法