JSON解析之json-lib和jackson的API
2017-02-17 10:12
357 查看
部分 json-lib
Ⅰ Maven依赖
<dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</artifactId> <version>2.2.3</version> <classifier>jdk15</classifier> </dependency>
Ⅱ 知识点
1. List集合转换成json代码
List list = newArrayList(); list.add( "first" ); list.add( "second" ); JSONArray jsonArray2 =JSONArray.fromObject( list );
2. Map集合转换成json代码
Map map = newHashMap(); map.put("name","json"); map.put("bool",Boolean.TRUE); map.put("int", newInteger(1)); map.put("arr", new String[] {"a", "b" }); map.put("func", "function(i){return this.arr[i]; }"); JSONObject json =JSONObject.fromObject(map);
3. Bean转换成json代码
JSONObject jsonObject =JSONObject.fromObject(new JsonBean());
4. 数组转换成json代码 ###
boolean[] boolArray = newboolean[] { true, false, true }; JSONArray jsonArray1 =JSONArray.fromObject(boolArray);
5. 一般数据转换成json代码 ###
JSONArray jsonArray3 =JSONArray.fromObject("['json','is','easy']" );
6. 传入Html中的Json,需要使用commons-lang.jar的StringEscapeUtils工具进行转码
StringEscapeUtils.escapeHtml(json); // json是json字符串
第二部分 jackson
Ⅰ Maven依赖
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.5.4</version> </dependency>
Ⅱ 准备
准备java bean: Course类package t20161220.vo; import java.sql.Timestamp; public class Course { private String courseName; private int courseId; private String teacherName; private String courseDescription; private Timestamp startTime; // 提供所有属性的构造方法 public Course(String courseName, int courseId, String teacherName, String courseDescription, Timestamp startTime) { super(); this.courseName = courseName; this.courseId = courseId; this.teacherName = teacherName; this.courseDescription = courseDescription; this.startTime = startTime; } // getter...setter...方法 }
1. List集合转换成json代码
List<Course> courses = new ArrayList<Course>(); for(int i=0;i<3;i++){ Course e = new Course("语文", (i+1), "张雨生"+i, "语文课是一门必修课", new Timestamp(System.currentTimeMillis())); courses.add(e); Thread.sleep(100); } ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(courses); System.out.println(json);
打印结果
[ { "courseName": "语文", "courseId": 1, "teacherName": "张雨生0", "courseDescription": "语文课是一门必修课", "startTime": 1482202619377 }, { "courseName": "语文", "courseId": 2, "teacherName": "张雨生1", "courseDescription": "语文课是一门必修课", "startTime": 1482202619491 }, { "courseName": "语文", "courseId": 3, "teacherName": "张雨生2", "courseDescription": "语文课是一门必修课", "startTime": 1482202619591 } ]
2. 普通java bean转json
Course c = new Course("语文", 0, "张雨生", "语文课是一门必修课", new Timestamp(System.currentTimeMillis())); ObjectMapper m = new ObjectMapper(); String s = m.writeValueAsString(c); System.out.println(s); // {"courseName":"语文","courseId":0,"teacherName":"张雨生","courseDescription":"语文课是一门必修课","startTime":"2016年12月20日 // 11:41:46"} // 日期类型被转化为了yyyy年MM月dd HH:mm:ss的形式,是因为在Course类的startTime属性上添加了注解 @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
3. java.util.Date 按格式转化
jackson默认将java.util.Date类型的数据转化为Timestamp格式。objectMapper.configure(SerializationConfig.Feature.WRITE_DATES_AS_TIMESTAMPS, false);
为了能将Date类型格式化为yyyy-MM-dd HH:mm:ss 的格式,可以在封装的java bean上添加注解
@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
public class Course{ // ... @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") private Date startTime; // ... }
4. HashMap 转json
Map<String, Object> map = new HashMap<>(); map.put("name", "张三"); map.put("age", 14); map.put("birthday", new Date()); String json1 = mapper.writeValueAsString(map); System.out.println(json1);
相关文章推荐
- [转] 各种Json解析工具比较 - json-lib/Jackson/Gson/FastJson
- java中使用fastjson、jackson、json-lib解析JSON---妈妈再也不用担心JSON解析
- java中使用fastjson、jackson、json-lib解析JSON-------------------妈妈再也不用担心JSON解析
- java中使用fastjson、jackson、json-lib解析JSON-------------------妈妈再也不用担心JSON解析
- 百度天气api开发 全解析xml和json格式 使用json-lib jsonObject、 Gson 方式把json 转换成 java对象
- jackson中的写和解析JSON的api例子
- JSON(三)——java中对于JSON格式数据的解析之json-lib与jackson
- Jackson解析json API和实现分析
- java中使用fastjson、jackson、json-lib解析JSON-------------------妈妈再也不用担心JSON解析
- windows 下VLC--LIBVLC API解析(六)----事件相关API
- iOS5系统API和5个开源库的JSON解析速度测试
- spring框架中的jackson解析json方法
- json-lib和jackson进行Java对象到json字符串序列化性能比较
- Json - 使用json-lib解析json字符串(火车票务返回的json串)的例子
- Android 获取Google Weather API 并通过Xml和JSON解析数据
- iOS三种Json方法解析国家气象局API
- iOS5系统API和5个开源库的JSON解析速度测试
- iOS5系统API和5个开源库的JSON解析速度测试
- Jquery下Json数据的传递与解析(asp.net mvc与asp.net api下后台json接收方式的不同)
- flex中使用corelib ActionScript 3 Library sdk包解析json数据