java对象和JSON之间转换

JSON解析器:
*常见的解析器:jsonlib,gson,fastjson,jackson
下面以jackson为例
一.Java对象转换JSON

1.使用步骤:
	1.导入jackson的相关jar包
		jackson-annotations-2.2.3.jar,jackson-core-2.2.3.jar,jackson-databind-2.2.3.jar
	2.创建jackson核心对象 ObjectMapper
	3.调用ObjectMapper的相关方法进行转换 
		转换方法:
                1.writeValue(参数1,obj)
                    参数1说明:
                        File:将obj对象转换为JSON字符串,并保存到指定的文件中
                        Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
                        OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
                2.writeValueAsString(obj):将对象转换为json字符串

eg

public class JacksonTest {

    //java对象转为JSON字符串
    @Test
    public void test1() throws IOException {
        Person p = new Person();
        p.setName("张三");
        p.setAge(23);
        p.setGender("男");

        ObjectMapper mapper = new ObjectMapper();
       
        mapper.writeValue(new File("/opt/json.txt"), p);
        String json = mapper.writeValueAsString(p);
        System.out.println(json);
    }
}

注解讲解
当javabean对象中如果有Date类型字段,那么转换成json 就变成了时间戳格式,这是不希望看到的
因此引出两个注解
1.@JsonIgnore :如果不希望转换此字段,可以在javabean对象的字段上加此注解,那么这个字段就不会被转换了
2.@JsonFormat(pattern = “yyyy-MM-dd”) :按此格式格式化这个字段

二.JSON转换java对象
调用ObjectMapper对象的readValue方法
eg

    @Test
    public void test6() throws IOException {
        String json = "{\"name\":\"张三\",\"age\":23,\"gender\":\"男\"}";

        ObjectMapper mapper = new ObjectMapper();
        Person person = mapper.readValue(json, Person.class);
        System.out.println(person);
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值