设为首页 加入收藏

TOP

Java中关于JSON对象类型和字符串类型之间互相转化的问题(二)
2014-11-23 21:26:32 来源: 作者: 【 】 浏览:50
Tags:Java 关于 JSON 对象 类型 字符串 之间 互相 转化 问题
s IOException
*/
public static String toJson(Map map) {
String json = "[]";
ObjectMapper mapper = new ObjectMapper();
StringWriter sw = new StringWriter();
try {
JsonGenerator gen = new JsonFactory().createJsonGenerator(sw);
mapper.writeva lue(gen, map);
gen.close();

json = sw.toString();
} catch (JsonGenerationException e) {
json = "[]";
logger.error("----1------toJson JsonGenerationException:\n" + e);
} catch (JsonMappingException e) {
json = "[]";
logger.error("----2------toJson JsonMappingException:\n" + e);
} catch (IOException e) {
json = "[]";
logger.error("----3------toJson IOException:\n" + e);
}


return json;
}


/**
* 将JSON字符串 转换为对象
*
* @author weiyuanhua
* @date 2010-11-18 下午02:52:13
* @param jsonStr
* JSON字符串
* @param beanClass
* 泛型对象
* @param field
* 对象中需要忽略的属性
* @return
*/
public static Object jsonToObject(String jsonStr, Class< > beanClass)
throws JsonParseException, JsonMappingException, IOException {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(jsonStr.getBytes(), beanClass);
}


public static Object jsonToObject(String jsonStr, String encoding,
Class< > beanClass) throws JsonParseException,
JsonMappingException, IOException {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(jsonStr.getBytes(encoding), beanClass);
}


public static Map parseJSON2Map(String jsonStr)
throws JsonParseException, JsonMappingException, IOException {
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(jsonStr, Map.class);
}

//不需要记性属性的忽略
public static String toJson(Object object,String filterName) {
ObjectMapper mapper = new ObjectMapper();
String json = "[]";
try {
FilterProvider filterProvider = new SimpleFilterProvider().addFilter(filterName, SimpleBeanPropertyFilter.serializeAllExcept());
json = mapper.writer(filterProvider).writeva lueAsString(object);
} catch (Exception e) {
json = "[]";
logger.error("----1------toJson Exception:\n" + e);
}

return json;
}

/*
*
* @param object 需要进行json序列化的类 可以是任何复杂的类
* @param args 需要进行过滤的属性名称 类对象名称或者一些属性名称都可以进行过滤
* */
public static String toJson(Object object, String[] args, String filterName) {
String json = "[]";
ObjectMapper mapper = new ObjectMapper();
try {
FilterProvider filterProvider = new SimpleFilterProvider()
.addFilter(filterName,
SimpleBeanPropertyFilter.serializeAllExcept(args));
json = mapper.writer(filterProvider).writeva lueAsString(object);
} catch (Exception e) {
json = "[]";
logger.error("----1------toJson Exception:\n" + e);
}


return json;
}

public static void main(String[] args) {
User user = new User(12, "aaa", "123456", new Date());
// String result = toJson(user, "id");
String result = toJson(user);
System.out.println(result);
List list = new ArrayList();
list.add(0,"name");
list.add(1,"favorite");
String li = toJson(list);
System.out.println(li);

Map map = new HashMap();
map.put("password", "123");
map.put("name", "clark");
map.put("call", "wowo");
String mr = toJson(map);
System.out.println(mr);

Date d = new Date();
String jsonStr = "{\"id\":23,\"name\":\"44444\"}";
try {
User u = (User)jsonToObject(jsonStr, User.class);
System.out.println(u.getN

首页 上一页 1 2 3 下一页 尾页 2/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C#对象转JSON字符串和JSON字符串.. 下一篇MinGW编译FFmpeg+x265过程笔记

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: