求助List> 转换格式

zzh520yl 2017-03-22 11:56:36
public class test {
public static void main(String[] args) {
Map<String,Object> map1 = new HashMap<String, Object>();
Map<String,Object> map2 = new HashMap<String, Object>();
List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();
String event_day;
map1.put("day",20170319);
map1.put("week",8);
map1.put("month",4);
map1.put("date",10);
list.add(map1);
map2.put("day",20170320);
map2.put("month",6);
map2.put("week",10);
map2.put("date",6);
list.add(map2);

}
}

转换成这样的数据
"data": {
"chart": {
"day": [
"0.0000", "0.0000"
],
"week": [
"0.0000", "0.0000"
],
"month": [
"0.0000", "0.0000"
],
"date": [
"20170311", "20170312"
]
},
"grid": {
{ 
"date":"20170311",
"dayNewNum": "0.7225",
"weekNewNum": "-0.0050",
"monthNewNum": "-0.0018"
},
{
"date":"20170311",
"dayNewNum": "0.7225",
"weekNewNum": "-0.0050",
"monthNewNum": "-0.0018"
}
}
}
其中day对应date,week对应date,week对应weekNewNum,month对应monthNewNum
...全文
361 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
一个治疗术 2017-03-23
  • 打赏
  • 举报
回复
直接用tojson方法就行了,因为万物皆为对象 ,抖机灵233333
一个治疗术 2017-03-23
  • 打赏
  • 举报
回复
import java.io.IOException;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.fasterxml.jackson.annotation.PropertyAccessor;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * Json转换工具类
 * 
 * @author liusy14 jsonUtil 2016年10月28日 下午2:18:22
 */
public class JsonUtil {

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

	/**
	 * 获取到mapper对象
	 * 
	 * @return
	 */
	private static ObjectMapper getMapper() {
		ObjectMapper mapper = new ObjectMapper();
		mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
		return mapper;
	}

	/**
	 * 将对象转换成JSON字符串
	 * 
	 * @param value
	 * @return 转换异常时,返回NULL
	 */
	public static String toJson(Object value) {
		try {
			return getMapper().writeValueAsString(value);
		} catch (JsonProcessingException e) {
			logger.error("toJson detected error.", e);
		}
		return null;
	}

	/**
	 * 将JSON字符串转换成相应的对象
	 * 
	 * @param value
	 * @param type
	 * @return 转换失败时,返回NULL
	 */
	public static <T> T fromJson(String value, Class<T> type) {
		try {
			return getMapper().readValue(value, type);
		} catch (Exception e) {
			logger.error("fromJson detected error,value:" + value, e);
		}
		return null;
	}

	/**
	 * JSON字符串转换成map
	 * 
	 * @param json
	 * @return
	 */
	public static Map<String, Object> toMap(String json) {
		try {
			return getMapper().readValue(json, new TypeReference<Map<String, Object>>() {
			});
		} catch (Exception e) {
			logger.error("json to map detected error.", e);
		}
		return null;
	}

	public static Map<Integer, String> toMapLess(String json) {
		try {
			return getMapper().readValue(json, new TypeReference<Map<Integer, String>>() {
			});
		} catch (Exception e) {
			logger.error("json to map detected error.", e);
		}
		return null;
	}

	/**
	 * 将实体bean转换成map对象
	 * 
	 * @param bean
	 * @return
	 */
	public static Map<String, Object> beanToMap(Object bean) {
		String value = toJson(bean);
		return toMap(value);
	}

	/**
	 * 将json数组转换成List
	 * 
	 * @param value
	 * @param type
	 * @return
	 */
	public static <T> List<T> fromJsonToList(String value, Class<T> type) {

		ObjectMapper mapper = getMapper();
		try {
			JsonParser parser = mapper.getFactory().createParser(value);
			JsonNode nodes = parser.readValueAsTree();
			List<T> list = new ArrayList<T>(nodes.size());
			for (JsonNode node : nodes) {
				list.add(mapper.readValue(node.traverse(), type));
			}
			return list;
		} catch (IOException e) {
			logger.error("fromJsonToList detected error.", e);
		}
		return null;
	}

	/**
	 * 重构Map排序 By Key
	 * 
	 * @param newFormerTitle
	 * @return
	 */
	public static Map<String, Object> sortMapByKey(Map<String, Object> newFormerTitle) {
		if (newFormerTitle == null || newFormerTitle.isEmpty()) {
			return null;
		}
		Map<String, Object> sortedMap = new TreeMap<String, Object>(new Comparator<String>() {
			public int compare(String key1, String key2) {
				int intKey1 = 0, intKey2 = 0;
				try {
					intKey1 = getInt(key1);
					intKey2 = getInt(key2);
				} catch (Exception e) {
					intKey1 = 0;
					intKey2 = 0;
				}
				return intKey1 - intKey2;
			}
		});
		sortedMap.putAll(newFormerTitle);
		return sortedMap;
	}

	private static int getInt(String str) {
		int i = 0;
		try {
			Pattern p = Pattern.compile("^\\d+");
			Matcher m = p.matcher(str);
			if (m.find()) {
				i = Integer.valueOf(m.group());
			}
		} catch (NumberFormatException e) {
			e.printStackTrace();
		}
		return i;
	}

}

67,536

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧