json是一种轻量级的数据交换语言,将对象序列化为json格式,可以在网络上传输,且各个平台都有成熟的工具,可以很快的将json反序列化为对应语言所需要的格式。
将java对象序列化为json格式关键代码如下:
Person person = new Person();
person.setName("zhangsan");
person.setBirth(new Date());
person.setAge(18);
//JSON对象序列化
String jsonPerson = null;
ObjectMapper objectMapper = new ObjectMapper();
StringWriter stringWriter = new StringWriter();
JsonGenerator createJsonGenerator = new JsonFactory().createJsonGenerator(stringWriter);
objectMapper.writeValue(stringWriter, person);
createJsonGenerator.close();
jsonPerson = stringWriter.toString();
打印结果:
{"name":"zhangsan","age":18,"birth":1504335725150}
这里需要引入maven依赖
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
需要使用工具包中的ObjectMapper 类,传入JsonGenerator 对象,将person对象序列化为json格式。
通过该工具包同样可以将json串反序列化为java对象,代码如下:
Person readValue = objectMapper.readValue(jsonPerson, Person.class);
只需要传入json串和Person类的class,就可以将json串反序列化为person对象。
还有一种方法是:
KeyValueVO message = new KeyValueVO();
message.setKey("111");
message.setValue("222");
String jsonString = JSON.toJSONString(message);
JSONObject parseObject = JSONObject.parseObject(jsonString);
System.out.println(parseObject);
需引入maven依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.7</version>
</dependency>