JSON笔记

fastjson

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.60</version>
</dependency>

JSON代表JSONObject和JSONArray的转化

【java对象转json字符串】String str1 = JSON.toJSONString(list);
【json字符串转java对象】Useruser1=JSON.parseObject(str2,User.class);
【java对象转json对象】JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
【josn对象转Java对象】User user = JSON.toJavaObject(jsonObject1, User.class);

JSONObject代表json对象

底层操作是由Map实现的

JSONObject jsonObject = new JSONObject();
jsonObject.put("key1", "value1");//JSONObject对象中添加键值对
jsonObject.put("key2", User.class);//JSONObject对象中添加键值
System.out.println(jsonObject.size()+"****"+jsonObject.get("key2"));

JSONArray代表json对象数组

底层操作是由List实现的

JSONArray jsonArray = new JSONArray();
jsonArray.add(new User("lisi","man"));
jsonArray.add(jsonObject);//将JSONObject对象添加到Json数组中
jsonArray.add(new Object());
jsonArray.add(new Integer(110));
System.out.println(jsonArray.size());
User u = (User) jsonArray.get(0);
System.out.println(u.getName());

完整代码

public class FastJsonTest {
    @Test
    public void test(){
        //创建一个对象
        User user1 = new User("xz1号", 3, "男");
        User user2 = new User("xz2号", 3, "男");
        User user3 = new User("xz3号", 3, "男");
        User user4 = new User("xz4号", 3, "男");
        List<User> list = new ArrayList<User>();
        list.add(user1);
        list.add(user2);
        list.add(user3);
        list.add(user4);

        System.out.println("*******1Java对象 转 JSON字符串*******");
        String str1 = JSON.toJSONString(list);
        System.out.println(str1);
        String str2 = JSON.toJSONString(user1);
        System.out.println(str2);

        System.out.println("\n****** 2JSON字符串 转 Java对象*******");
        User jp_user1=JSON.parseObject(str2,User.class);
        System.out.println(jp_user1);

        System.out.println("\n****** 3Java对象 转 JSON对象(可以是任意对象:Object) ******");
        JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
        System.out.println(jsonObject1);
        System.out.println(jsonObject1.getString("name"));

        System.out.println("\n****** 4JSON对象 转 Java对象 ******");
        User to_java_user = JSON.toJavaObject(jsonObject1, User.class);
        System.out.println(to_java_user);
    }

    @Test
    public void test2(){
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("key1", "value1");//JSONObject对象中添加键值对
        jsonObject.put("key2", User.class);//JSONObject对象中添加键值
        System.out.println(jsonObject.size()+"****"+jsonObject.get("key2"));

        JSONObject jsonObject2 = new JSONObject();
        jsonObject2.put("k1", "v1");//JSONObject对象中添加键值对
        jsonObject2.put("k2", "v2");//JSONObject对象中添加键值
        
        JSONArray jsonArray = new JSONArray();
        jsonArray.add(new User("lisi","man"));
        jsonArray.add(new User("zhangsan","female"));
        jsonArray.add(jsonObject);//将JSONObject对象添加到Json数组中
        jsonArray.add(jsonObject2);//将JSONObject对象添加到Json数组中
        jsonArray.add(new Object());
        jsonArray.add(new Integer(110));
        
        System.out.println("数组size="+jsonArray.size());
        System.out.println("遍历数组元素:");
        for (Object o : jsonArray) {
            System.out.println("     "+o);
        }
        User u = (User) jsonArray.get(0);
        System.out.println("获取数组第一个对象:"+ u.toString());
    }
}

Jackson

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.8</version>
</dependency>
public class JacksonTest {
    @Test
    public void test1() throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        //创建一个对象
        User user = new User("xz1号", 3, "男");
        //将我们的对象解析成为json格式
        String str = mapper.writeValueAsString(user);
        System.out.println(str);
        User user1 = mapper.readValue(str, User.class);
        System.out.println(user1.getName());
    }

    @Test
    public void test() throws Exception {
        //创建一个jackson的对象映射器,用来解析数据
        ObjectMapper mapper = new ObjectMapper();
        //创建一个对象
        User user1 = new User("xz1号", 3, "男");
        User user2 = new User("xz2号", 3, "男");
        User user3 = new User("xz3号", 3, "男");
        User user4 = new User("xz4号", 3, "男");
        List<User> list = new ArrayList<User>();
        list.add(user1);
        list.add(user2);
        list.add(user3);
        list.add(user4);
        //将我们的对象解析成为json格式
        String str = mapper.writeValueAsString(list);
        System.out.println(str);
        list = Arrays.asList(mapper.readValue(str, User[].class));
        System.out.println(list.get(0).getName());
    }
    /*json字符串转换为list*/
    @Test
    public void test3() throws Exception {
        String json = "[{\"name\":\"xz1号\",\"age\":3,\"sex\":\"男\"},{\"name\":\"xz2号\",\"age\":3,\"sex\":\"男\"},{\"name\":\"xz3号\",\"age\":3,\"sex\":\"男\"},{\"name\":\"xz4号\",\"age\":3,\"sex\":\"男\"}]\n";
        ObjectMapper mapper = new ObjectMapper();
        User[] usersArr = mapper.readValue(json, User[].class);
        System.out.println(usersArr.length);
        List<User> userList = Arrays.asList(mapper.readValue(json,User[].class));
        System.out.println(userList.get(0).getName());
    }
}
posted @   haveanicedayfh  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示