/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.web.util; import java.io.IOException; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import org.codehaus.jackson.map.ObjectMapper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * * @author wangwei */ public class JSONUtil { private static Logger logger = LoggerFactory.getLogger(JSONUtil.class); private static DateFormat DEFAULT_DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); private static ObjectMapper objectMapper = new ObjectMapper(); public static String toJSON(Object object, DateFormat dateFormat) { try { objectMapper.getSerializationConfig().setDateFormat(dateFormat); return objectMapper.writeValueAsString(object); } catch (IOException e) { logger.error(e.toString()); throw new IllegalArgumentException(e); } } public static String toJSON(Object object) { return toJSON(object, DEFAULT_DATE_FORMAT); } public static String toJSON(List<String> aliases, List<List<Object>> values, DateFormat dateFormat) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (List<Object> value : values) { list.add(createMap(aliases, value)); } return toJSON(list, dateFormat); } public static String toJSON(List<String> aliases, List<List<Object>> values) { return toJSON(aliases, values, DEFAULT_DATE_FORMAT); } public static String toJSON(String[] aliases, List<Object[]> values, DateFormat dateFormat) { List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); for (Object[] value : values) { list.add(createMap(aliases, value)); } return toJSON(list, dateFormat); } public static String toJSON(String[] aliases, List<Object[]> values) { return toJSON(aliases, values, DEFAULT_DATE_FORMAT); } static Map<String, Object> createMap(String[] keys, Object[] values) { Map<String, Object> map = new LinkedHashMap<String, Object>(); for (int i = 0; i < keys.length; ++i) { map.put(keys[i], values[i]); } return map; } static Map<String, Object> createMap(List<String> keys, List<Object> values) { Map<String, Object> map = new LinkedHashMap<String, Object>(); for (int i = 0; i < keys.size(); ++i) { map.put(keys.get(i), values.get(i)); } return map; } }