首先咱们学习json的时候第一想到的是如何将JavaBean对象转化成Json字符串,或者怎样将json字符串转化成JavaBean对象。html
使用ObjectMapper objectMapper = new ObjectMapper()对象。java
直接贴代码吧,省略了了JavaBean的代码,json
若是不想一些属性被转化成json字符串的话,能够采用如下方法忽略掉:数组
JavaBean:app
由于Ios,Android均继承了Default类因此在输出Ios或Android视图的时候也会输出Default视图。ide
测试代码:学习
输出结果:测试
测试代码:url
测试结果:spa
输出结果:
首先自定义一个序列化类(该类不能定义成内部类,不然报错)
而后在JavaBean属性上加上@JsonSerialize注解
测试代码结果:
objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() { @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException { gen.writeString(""); } });
objectMapper.setSerializationInclusion(JsonInclude.Include.NON_EMPTY);
①将简单的Json字符串反串行化到Map对象里时
String turingResult = "{\"code\":302000,\"text\":\"亲,已帮您找到相关新闻\"}"; ObjectMapper objectMapper = new ObjectMapper(); //当须要用集合时,必须使用TypeFactory来构造集合类型 TypeFactory typeFactory = objectMapper.getTypeFactory(); Map<String, Object> map = objectMapper.readValue(turingResult, typeFactory.constructMapType(HashMap.class, String.class, Object.class)); System.out.println(map);
②将Json数组反串行化到List集合里
String turingResult = "[{\"article\":\"工信部:今年将大幅提网速降手机流量费\",\"source\":\"网易新闻\",\"icon\":\"\",\"detailurl\":\"http://news.163.com/15/0416/03/AN9SORGH0001124J.html\"},{\"article\":\"北京最强沙尘暴午后袭沪 当地叫停广场舞\",\"source\":\"网易新闻\",\"icon\":\"\",\"detailurl\":\"http://news.163.com/15/0416/14/ANB2VKVC00011229.html\"},{\"article\":\"公安部:小客车驾照年内试点自学直考\",\"source\":\"网易新闻\",\"icon\":\"\",\"detailurl\":\"http://news.163.com/15/0416/01/AN9MM7CK00014AED.html\"}]"; ObjectMapper objectMapper = new ObjectMapper(); //当须要用集合时,必须使用TypeFactory来构造集合类型 TypeFactory typeFactory = objectMapper.getTypeFactory(); List<Map<String, Object>> list = objectMapper.readValue(turingResult, typeFactory .constructCollectionType(ArrayList.class, typeFactory.constructMapType( HashMap.class, String.class, String.class))); System.out.println(list);