java arraylist json_Java:ArrayList如何转换为JSON字符串呢

展开全部

下面这段工具类中有json与object互相转换的,不知道能帮助你不/**

* json 工具类

*/

package com.xlhu.util;

import java.io.IOException;

import java.text.DateFormat;

import java.text.SimpleDateFormat;

import org.apache.commons.lang.StringUtils;

import org.apache.poi.hssf.record.formula.functions.T;

import org.codehaus.jackson.map.ObjectMapper;

import org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

/**

* Jackson的简单封装11.

*

* @32313133353236313431303231363533e58685e5aeb931333335326133author calvin

*/

public class JsonBinder {

private static Logger logger = LoggerFactory.getLogger(JsonBinder.class);

private ObjectMapper mapper;

public JsonBinder(Inclusion inclusion) {

mapper = new ObjectMapper();

//设置输出包含的属性

mapper.getSerializationConfig().setSerializationInclusion(inclusion);

//设置输入时忽略JSON字符串中存在而Java对象实际没有的属性

mapper.getDeserializationConfig().set(

org.codehaus.jackson.map.DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);

mapper.configure(org.codehaus.jackson.JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);

}

/**

* 创建输出全部属性到Json字符串的Binder.

*/

public static JsonBinder buildNormalBinder() {

return new JsonBinder(Inclusion.ALWAYS);

}

/**

* 创建只输出非空属性到Json字符串的Binder.

*/

public static JsonBinder buildNonNullBinder() {

return new JsonBinder(Inclusion.NON_NULL);

}

/**

* 创建只输出初始值被改变的属性到Json字符串的Binder.

*/

public static JsonBinder buildNonDefaultBinder() {

return new JsonBinder(Inclusion.NON_DEFAULT);

}

/**

* 如果JSON字符串为Null或"null"字符串,返回Null.

* 如果JSON字符串为"[]",返回空集合.

*

* 如需读取集合如List/Map,且不是List这种简单类型时使用如下语句:

* List beanList = binder.getMapper().readValue(listString, new TypeReference>() {});

*/

@SuppressWarnings("hiding")

public  T fromJson(String jsonString, Class clazz) {

if (StringUtils.isEmpty(jsonString)) {

return null;

}

try {

return mapper.readValue(jsonString, clazz);

} catch (IOException e) {

logger.warn("parse json string error:" + jsonString, e);

return null;

}

}

/**

* 如果对象为Null,返回"null".

* 如果集合为空集合,返回"[]".

*/

public String toJson(Object object) {

try {

return mapper.writeValueAsString(object);

} catch (IOException e) {

logger.warn("write to json string error:" + object, e);

return null;

}

}

/**

* 设置转换日期类型的format pattern,如果不设置默认打印Timestamp毫秒数.

*/

public void setDateFormat(String pattern) {

if (StringUtils.isNotBlank(pattern)) {

DateFormat df = new SimpleDateFormat(pattern);

mapper.getSerializationConfig().setDateFormat(df);

mapper.getDeserializationConfig().setDateFormat(df);

}

}

/**

* 取出Mapper做进一步的设置或使用其他序列化API.

*/

public ObjectMapper getMapper() {

return mapper;

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值