[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
原创粉丝点击