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>