Jackson使用(三)
2016-01-12 16:12
232 查看
package com.manager.util;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Test2 {
/**
* @param args
* @author julong 2015-6-1 ????03:37:27
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<UserInfo> userInfoList = new ArrayList<UserInfo>();
UserInfo userInfo = new UserInfo();
userInfo.setUserName("小明");
userInfo.setUserAge(18);
userInfo.setUserSex("男");
userInfo.setUserPassword("000000");
UserInfo userInfo1 = new UserInfo();
userInfo1.setUserName("小红");
userInfo1.setUserAge(18);
userInfo1.setUserSex("女");
userInfo1.setUserPassword("000000");
UserInfo userInfo2 = new UserInfo();
userInfo2.setUserName("小强");
userInfo2.setUserAge(20);
userInfo2.setUserSex("男");
userInfo2.setUserPassword("000000");
userInfoList.add(userInfo);
userInfoList.add(userInfo1);
userInfoList.add(userInfo2);
ObjectMapper objectMapper = new ObjectMapper();
try {
File file = new File("user.json");
FileOutputStream fileOutputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "utf-8");
objectMapper.writeValue(outputStreamWriter, userInfoList);
System.out.println("创建成功");
//有人可能给很疑问 为什么要转为UTF-8的编码格式 因为一般我们的环境都是GBK编码格式,在json中如果不做项目的转码 为UTF-8或者生成的json的转为UTF-8
//你会惊奇的发现出来的文件为乱码中文的,可读性就太差了,不过你不转也没有关系的,因为在java中你以同样的编码格式读取出来效果还是一样的 不会乱码,
//个人感觉就是不舒服,看起来感觉就是个错的乱码,所以建议还是使用UTF-8编码。
//转集合
List list = objectMapper.readValue(new File("user.json"), List.class);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
//强转为java对象
UserInfo userInfo6 = objectMapper.convertValue(list.get(i), UserInfo.class);
System.out.println(userInfo6.getUserName());
}
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.manager.util;
public class UserInfo {
private String userName;
private int userAge;
private String userSex;
private String userPassword;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
}
创建成功
{userName=小明, userAge=18, userSex=男, userPassword=000000}
小明
{userName=小红, userAge=18, userSex=女, userPassword=000000}
小红
{userName=小强, userAge=20, userSex=男, userPassword=000000}
小强
乱码的user.json与不乱码的user.json[{"userName":"灏忔槑","userAge":18,"userSex":"鐢?,"userPassword":"000000"},{"userName":"灏忕孩","userAge":18,"userSex":"濂?,"userPassword":"000000"},{"userName":"灏忓己","userAge":20,"userSex":"鐢?,"userPassword":"000000"}] [{"userName":"小明","userAge":18,"userSex":"男","userPassword":"000000"},{"userName":"小红","userAge":18,"userSex":"女","userPassword":"000000"},{"userName":"小强","userAge":20,"userSex":"男","userPassword":"000000"}] 那个看着舒服我相信明眼人一眼就看出啦啦啦!
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.List;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class Test2 {
/**
* @param args
* @author julong 2015-6-1 ????03:37:27
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
List<UserInfo> userInfoList = new ArrayList<UserInfo>();
UserInfo userInfo = new UserInfo();
userInfo.setUserName("小明");
userInfo.setUserAge(18);
userInfo.setUserSex("男");
userInfo.setUserPassword("000000");
UserInfo userInfo1 = new UserInfo();
userInfo1.setUserName("小红");
userInfo1.setUserAge(18);
userInfo1.setUserSex("女");
userInfo1.setUserPassword("000000");
UserInfo userInfo2 = new UserInfo();
userInfo2.setUserName("小强");
userInfo2.setUserAge(20);
userInfo2.setUserSex("男");
userInfo2.setUserPassword("000000");
userInfoList.add(userInfo);
userInfoList.add(userInfo1);
userInfoList.add(userInfo2);
ObjectMapper objectMapper = new ObjectMapper();
try {
File file = new File("user.json");
FileOutputStream fileOutputStream = new FileOutputStream(file);
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(fileOutputStream, "utf-8");
objectMapper.writeValue(outputStreamWriter, userInfoList);
System.out.println("创建成功");
//有人可能给很疑问 为什么要转为UTF-8的编码格式 因为一般我们的环境都是GBK编码格式,在json中如果不做项目的转码 为UTF-8或者生成的json的转为UTF-8
//你会惊奇的发现出来的文件为乱码中文的,可读性就太差了,不过你不转也没有关系的,因为在java中你以同样的编码格式读取出来效果还是一样的 不会乱码,
//个人感觉就是不舒服,看起来感觉就是个错的乱码,所以建议还是使用UTF-8编码。
//转集合
List list = objectMapper.readValue(new File("user.json"), List.class);
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
//强转为java对象
UserInfo userInfo6 = objectMapper.convertValue(list.get(i), UserInfo.class);
System.out.println(userInfo6.getUserName());
}
} catch (JsonGenerationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JsonMappingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.manager.util;
public class UserInfo {
private String userName;
private int userAge;
private String userSex;
private String userPassword;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public int getUserAge() {
return userAge;
}
public void setUserAge(int userAge) {
this.userAge = userAge;
}
public String getUserSex() {
return userSex;
}
public void setUserSex(String userSex) {
this.userSex = userSex;
}
public String getUserPassword() {
return userPassword;
}
public void setUserPassword(String userPassword) {
this.userPassword = userPassword;
}
}
下面看下运行的结果
创建成功
{userName=小明, userAge=18, userSex=男, userPassword=000000}
小明
{userName=小红, userAge=18, userSex=女, userPassword=000000}
小红
{userName=小强, userAge=20, userSex=男, userPassword=000000}
小强
乱码的user.json与不乱码的user.json[{"userName":"灏忔槑","userAge":18,"userSex":"鐢?,"userPassword":"000000"},{"userName":"灏忕孩","userAge":18,"userSex":"濂?,"userPassword":"000000"},{"userName":"灏忓己","userAge":20,"userSex":"鐢?,"userPassword":"000000"}] [{"userName":"小明","userAge":18,"userSex":"男","userPassword":"000000"},{"userName":"小红","userAge":18,"userSex":"女","userPassword":"000000"},{"userName":"小强","userAge":20,"userSex":"男","userPassword":"000000"}] 那个看着舒服我相信明眼人一眼就看出啦啦啦!
相关文章推荐
- Java下利用Jackson进行JSON解析和序列化示例
- Jackson的用法实例分析
- Jackson 转json 时日期格式化,排除字段,包含字段
- 通用json解析,根据json层级关系直接使用: 基节点.子节点.孙节点.x.x
- Jackson解析json数据时,Bean对象的内部类必须定义为static
- 使用jacksonjava对象转换成标准的json格式,便于与easyui...
- Jackson介绍篇之filter
- json key没有引号
- Spring4 MVC json问题(406 Not Acceptable)
- Spring MVC Jackson DateFormat
- jackson简单用法总结
- 升级Spring MVC 4.1.3.Final遇到接口返回406 (Not Acceptable)的问题
- springmvc+jackson不返回null值
- Jackson 转化String 为Date类型
- [json]fasterxml.jackson常用资料
- 调用Jackson一行解析海量复杂结构的json数据
- Android JackSon (Json工具) 简单使用封装
- jackson的一个异常
- 关于springMVC转换json出现的异常
- Google Translate And Json Parsing - Google翻译与Json解析