[Json] Java中Json相关操作
来源:互联网 发布:华东医院数据库 编辑:程序博客网 时间:2024/06/03 22:46
本文中使用到的Json Jar : fastjson-1.1.40.jar
首先是两个JavaBean
- User.java
- Person.java (里面关联了User)
JavaBean代码
public class User { private String id; private String username; private String password; public User() { super(); } public User(String id, String username, String password) { super(); this.id = id; this.username = username; this.password = password; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", password=" + password + "]"; }}
public class Person { private String name; private User user; public Person(String name, User user) { super(); this.name = name; this.user = user; } public Person() { super(); } public String getName() { return name; } public void setName(String name) { this.name = name; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public String toString() { return "Person [name=" + name + ", user=" + user + "]"; }}
Json 解析
/** * 字符串转Json * @param str * @return */ public static JSONObject strToJson (String str){ //String user = "{'id':'1','username':'admin','password':'123456'}"; JSONObject json = (JSONObject) JSONObject.parse(str); String id = (String) json.get("id"); String username = (String) json.get("username"); String password = (String) json.get("password"); return json; } /** * JavaBean转字符串 * @param object * @return */ public static String javaBeanToStr (Object object){ String json = JSON.toJSONString(object); return json; } /** * JavaBean转字符串 - 只显示某些特定字段 * @return */ public static String javaBeanToStrTwo (Object object){ //只显示User中的 admin 和 password 字段 SimplePropertyPreFilter filter = new SimplePropertyPreFilter(User.class, "username","password"); String json =JSON.toJSONString(object,filter); return json; } /** * List集合转字符串 - 可只显示特定字符串 * @param list * @return */ public static String listToStr (List list){ //只显示User中的 admin 和 password 字段 SimplePropertyPreFilter filter = new SimplePropertyPreFilter(User.class, "username","password"); String json =JSON.toJSONString(list,filter); //String json =JSON.toJSONString(list); return json; } /** * List集合转字符串 - JavaBean带子JavaBean * @param list * @return */ public static String listToStrTwo (List list){ String json =JSON.toJSONString(list); return json; } /** * 字符串转List集合 - * 字符串格式 : [{...},{...},{...}] * @param json * @return */ public static List<User> strToList(String json){ List<User> users = JSON.parseObject(json, new TypeReference<List<User>>(){}); return users; } /** * 字符串转List集合 - JavaBean带子JavaBean * 字符串格式 : [{"":"","JavaBean中的子JavaBean的属性名":{..}}] * 例:Person 类中有 User属性,属性名为user * 例:[{"name":"李四","user":{"id":"1","password":"password","username":"admin"}}] * @return */ public static List<Person> strToListTwo (String json){ List<Person> persons = JSON.parseObject(json, new TypeReference<List<Person>>(){}); return persons; } /** * 字符串转Map集合 * 字符串格式 : {"Map键值":{ JavaBean属性 : 属性值 }} * 例:{"张三":{"id":"1","password":"password","username":"admin"}} * @param json * @return */ public static Map<String, User> strToMap (String json){ Map<String, User> map= (Map<String, User>) JSON.parse(json); return map; } /** * Map集合转字符串 * @param map * @return */ public static String mapToStr (Map<String, User> map){ String json = JSON.toJSONString(map); return json; } /** * Json添加Json */ @Test public void add (){ JSONObject json = new JSONObject(); json.put("username", "admin"); //{"username":"admin"} } /** * Json添加Json */ @Test public void add1 (){ JSONObject json = new JSONObject(); User user = new User("1","admin", "password"); json.put("name", "李四"); json.put("user", user); System.out.println(json); //{"name":"李四","user":{"id":"1","password":"password","username":"admin"}} } /** * Json数组添加Json * 例 : [{"name":"李四","user":{"id":"1","password":"password","username":"admin"}}] */ @Test public void add2 (){ // 第一步 JSONObject jsonObject = new JSONObject(); User user = new User("1","admin", "password"); jsonObject.put("name", "李四"); jsonObject.put("user", user); // 第二步 JSONArray json = new JSONArray(); json.add(0, jsonObject); System.out.println(json); }
测试代码
//测试strToJson String user = "{'id':'1','username':'admin','password':'123456'}"; JSONObject strToJson = strToJson(user); //测试javaBeanToStr User user2 = new User("1","admin", "password"); String javaBeanToStr = javaBeanToStr(user2); //测试javaBeanToStrTwo String javaBeanToStrTwo = javaBeanToStrTwo(user2); //测试 listToStr List<User> list = new ArrayList<User>(); User user4 = new User("1","admin", "password"); User user3 = new User("1","admin", "password"); list.add(user4); list.add(user3); String listToStr = listToStr(list); //测试 strToList List<User> strToList = strToList(listToStr); //测试 listToStrTwo List<Person> persons = new ArrayList<Person>(); User user5 = new User("1","admin", "password"); Person person = new Person("李四", user5); persons.add(person); String listToStrTwo = listToStrTwo(persons); //[{"name":"李四","user":{"id":"1","password":"password","username":"admin"}}] //测试 strToListTwo listToStrTwo = "[{\"name\":\"李四\",\"user\":{\"id\":\"1\",\"password\":\"password\",\"username\":\"admin\"}}]"; List<Person> strToListTwo = strToListTwo(listToStrTwo); //测试 mapToStr Map<String, User> map = new HashMap<String, User>(); map.put("张三", user2); String mapToStr = mapToStr(map); //{"张三":{"id":"1","password":"password","username":"admin"}} //测试 strToMap Map<String, User> strToMap = strToMap(mapToStr);
0 0
- [Json] Java中Json相关操作
- java中操作json
- Java中JSON的操作
- JSON相关操作
- json操作相关
- JSON相关操作函数
- json相关操作
- Java中如何使用JSON即JSON相关Jar包
- [Json] JS中Json操作
- java 解析JSON相关
- JAVA解析JSON相关
- JAVA解析JSON相关
- JAVA解析JSON相关
- JAVA解析JSON相关
- java中操作JSON公共类
- Java中XML和JSON操作
- python对json的相关操作 json.dumps() json.loads()
- MySQL 5.7 JSON相关操作
- 51nod 1050 循环数组最大子段和
- 数据结构:单链表 C++实现
- 首届英才在线编程大赛-编程题回顾-java实现
- 多校训练10&&HDU5862 Counting Intersections
- android之数据存储2
- [Json] Java中Json相关操作
- android控件——textView使用
- hadoop中NameNode、DataNode、Secondary、NameNode、JobTracker TaskTracker介绍
- 标准W3C盒子模型和IE盒子模型CSS布局经典盒子模型
- 9. Palindrome Number
- 网易内推面经_Android开发
- hdu 5867 Water problem
- 前端速学成财:第九课-webpack篇:编译JS的正确姿势
- php常用函数