Maven+Spring添加json工具

1、在pom.xml中添加依賴,這裏我們引用的是:com.fasterxml.jackson...相關的jar包


2、編寫工具類,這個參考網上的很多例子


package com.zpl.util.json;

import java.io.IOException;
import java.lang.reflect.Field;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.databind.SerializerProvider;
import com.zpl.util.ClassUtil;
import com.zpl.util.date.DateUtil;
import com.zpl.util.string.StrUtil;

/**
 * json處理工具
 * @author  
 *
 */
public class JSONUtil {


	private static final ObjectMapper mapper = new ObjectMapper();

	static {
		mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_CONTROL_CHARS, true);
		mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
		DateFormat d = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		mapper.setDateFormat(d);
		mapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {

			@Override
			public void serialize(Object arg0, JsonGenerator arg1, SerializerProvider arg2) throws IOException, JsonProcessingException {
				arg1.writeString("");
			}
		});
	}

	/**
	 * 
	 * @param map
	 *            存json對象的map
	 * @param key
	 *            request中的key
	 * @param value
	 *            request中的值
	 * @return
	 */
	public static void initJsonObject(Map<String, Object> map, String key, String value) {
		if (map == null)
			return;
		key = key.replaceAll("]", "").replace("[", "#");
		String[] keyArray = key.split("#");
		if (keyArray.length < 2)
			return;
		// date結尾,轉換爲日期類型
		if (keyArray[1].toLowerCase().endsWith("date") && !StrUtil.isNull(value) && DateUtil.isValidDate(value))
			map.put(keyArray[1], DateUtil.string2Date(value));
		else
			map.put(keyArray[1], value);
	}

	/**
	 * json數組轉list
	 * 
	 * @param jsonArr
	 * @return
	 * @throws Exception
	 * @throws JsonMappingException
	 * @throws JsonParseException
	 */
	public static List<Map<String, Object>> json2List(String jsonObj) {
		try {
			return mapper.readValue(jsonObj, mapper.getTypeFactory().constructCollectionType(ArrayList.class, Map.class));
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}

	/**
	 * json對象轉map
	 * 
	 * @param jsonObj
	 * @return
	 * @throws Exception
	 * @throws JsonMappingException
	 * @throws JsonParseException
	 */
	public static Map<String, Object> json2Map(String jsonObj) {
		if (StrUtil.isNull(jsonObj))
			return new HashMap<String, Object>();
		try {
			return mapper.readValue(jsonObj, mapper.getTypeFactory().constructMapType(Map.class, String.class, Object.class));
		} catch (Exception e) {
			throw new RuntimeException(e);
		}

	}

	public static <T> T json2Object(String jsonObj, Class<T> requiredType) {
		try {
			return mapper.readValue(jsonObj, requiredType);
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * list轉json數組
	 * 
	 * @param list
	 * @return
	 * @throws Exception
	 */
	public static String formatJSONArray(List<?> list) {
		try {
			return mapper.writeValueAsString(list);
		} catch (JsonProcessingException e) {
			throw new RuntimeException(e);
		}

	}

	/**
	 * map轉json對象
	 * 
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public static String formatJSONObject(Map<?, ?> map) {
		try {
			return mapper.writeValueAsString(map);
		} catch (JsonProcessingException e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * Object轉json對象
	 * 
	 * @param map
	 * @return
	 * @throws Exception
	 */
	public static String formatObject(Object object) {
		try {
			return mapper.writeValueAsString(object);
		} catch (JsonProcessingException e) {
			throw new RuntimeException(e);
		}
	}

	public static void main(String[] args) {
		String qiwang = "{\"array3\":[[{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],[{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],\"list_stringtest1\",\"list_stringtest2\",\"list_stringtest3\"],\"性別\":\"投保人xin_bie\",\"姓名\":\"投保人xin_ming\",\"maptest\":{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},\"stringtest\":[\"list_stringtest1\",\"list_stringtest2\",\"list_stringtest3\"],\"出生日期_date\":\"2015-01-01\",\"學歷\":\"投保人xue_li\",\"國籍\":\"投保人guo_ji\",\"被保人\":[{\"性別\":\"被保人_1_xin_bie\",\"姓名\":\"被保人_1_xin_ming\",\"受益人\":[{\"性別\":\"受益人_2_xin_bie\",\"姓名\":\"受益人_2_xin_ming\",\"地址\":[{\"地址二\":\"受益人_2_di_zhi_2\",\"地址一\":\"受益人_2_di_zhi_1\",\"地址三\":\"受益人_2_di_zhi_3\",\"地址四\":\"受益人_2_di_zhi_4\"},{\"地址二\":\"受益人_2_di_zhi_2\",\"地址一\":\"受益人_2_di_zhi_1\",\"地址三\":\"受益人_2_di_zhi_3\",\"地址四\":\"受益人_2_di_zhi_4\"}],\"學歷\":\"受益人_2_xue_li\",\"國籍\":\"受益人_2_guo_ji\",\"出生日期\":\"受益人_2_chu_sheng_ri_qi\"},{\"性別\":\"受益人_3_xin_bie\",\"姓名\":\"受益人_3_xin_ming\",\"地址\":[{\"地址二\":\"受益人_3_di_zhi_2\",\"地址一\":\"受益人_3_di_zhi_1\",\"地址三\":\"受益人_3_di_zhi_3\",\"地址四\":\"受益人_3_di_zhi_4\"},{\"地址二\":\"受益人_3_di_zhi_2\",\"地址一\":\"受益人_3_di_zhi_1\",\"地址三\":\"受益人_3_di_zhi_3\",\"地址四\":\"受益人_3_di_zhi_4\"}],\"學歷\":\"受益人_3_xue_li\",\"國籍\":\"受益人_3_guo_ji\",\"出生日期\":\"受益人_3_chu_sheng_ri_qi\"},{\"array3\":[[{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],[{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],\"list_stringtest1\",\"list_stringtest2\",\"list_stringtest3\"],\"性別\":\"受益人_4_xin_bie\",\"姓名\":\"受益人_4_xin_ming\",\"地址\":[{\"地址二\":\"受益人_4_di_zhi_2\",\"地址一\":\"受益人_4_di_zhi_1\",\"地址三\":\"受益人_4_di_zhi_3\",\"地址四\":\"受益人_4_di_zhi_4\"},{\"地址二\":\"受益人_4_di_zhi_2\",\"地址一\":\"受益人_4_di_zhi_1\",\"地址三\":\"受益人_4_di_zhi_3\",\"地址四\":\"受益人_4_di_zhi_4\"}],\"學歷\":\"受益人_4_xue_li\",\"國籍\":\"受益人_4_guo_ji\",\"出生日期\":\"受益人_4_chu_sheng_ri_qi\"}],\"地址\":[{\"地址二\":\"被保人_1_di_zhi_2\",\"地址一\":\"被保人_1_di_zhi_1\",\"地址三\":\"被保人_1_di_zhi_3\",\"地址四\":\"被保人_1_di_zhi_4\"},{\"地址二\":\"被保人_1_di_zhi_2\",\"地址一\":\"被保人_1_di_zhi_1\",\"地址三\":\"被保人_1_di_zhi_3\",\"地址四\":\"被保人_1_di_zhi_4\"}],\"學歷\":\"被保人_1_xue_li\",\"國籍\":\"被保人_1_guo_ji\",\"出生日期\":\"被保人_1_chu_sheng_ri_qi\"},{\"性別\":\"被保人_2_xin_bie\",\"姓名\":\"被保人_2_xin_ming\",\"受益人\":[{\"性別\":\"受益人_2_xin_bie\",\"姓名\":\"受益人_2_xin_ming\",\"地址\":[{\"地址二\":\"受益人_2_di_zhi_2\",\"地址一\":\"受益人_2_di_zhi_1\",\"地址三\":\"受益人_2_di_zhi_3\",\"地址四\":\"受益人_2_di_zhi_4\"},{\"地址二\":\"受益人_2_di_zhi_2\",\"地址一\":\"受益人_2_di_zhi_1\",\"地址三\":\"受益人_2_di_zhi_3\",\"地址四\":\"受益人_2_di_zhi_4\"}],\"學歷\":\"受益人_2_xue_li\",\"國籍\":\"受益人_2_guo_ji\",\"出生日期\":\"受益人_2_chu_sheng_ri_qi\"},{\"性別\":\"受益人_3_xin_bie\",\"姓名\":\"受益人_3_xin_ming\",\"地址\":[{\"地址二\":\"受益人_3_di_zhi_2\",\"地址一\":\"受益人_3_di_zhi_1\",\"地址三\":\"受益人_3_di_zhi_3\",\"地址四\":\"受益人_3_di_zhi_4\"},{\"地址二\":\"受益人_3_di_zhi_2\",\"地址一\":\"受益人_3_di_zhi_1\",\"地址三\":\"受益人_3_di_zhi_3\",\"地址四\":\"受益人_3_di_zhi_4\"}],\"學歷\":\"受益人_3_xue_li\",\"國籍\":\"受益人_3_guo_ji\",\"出生日期\":\"受益人_3_chu_sheng_ri_qi\"},{\"array3\":[[{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],[{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],\"list_stringtest1\",\"list_stringtest2\",\"list_stringtest3\"],\"性別\":\"受益人_4_xin_bie\",\"姓名\":\"受益人_4_xin_ming\",\"地址\":[{\"地址二\":\"受益人_4_di_zhi_2\",\"地址一\":\"受益人_4_di_zhi_1\",\"地址三\":\"受益人_4_di_zhi_3\",\"地址四\":\"受益人_4_di_zhi_4\"},{\"地址二\":\"受益人_4_di_zhi_2\",\"地址一\":\"受益人_4_di_zhi_1\",\"地址三\":\"受益人_4_di_zhi_3\",\"地址四\":\"受益人_4_di_zhi_4\"}],\"學歷\":\"受益人_4_xue_li\",\"國籍\":\"受益人_4_guo_ji\",\"出生日期\":\"受益人_4_chu_sheng_ri_qi\"}],\"地址\":[{\"地址二\":\"被保人_2_di_zhi_2\",\"地址一\":\"被保人_2_di_zhi_1\",\"地址三\":\"被保人_2_di_zhi_3\",\"地址四\":\"被保人_2_di_zhi_4\"},{\"地址二\":\"被保人_2_di_zhi_2\",\"地址一\":\"被保人_2_di_zhi_1\",\"地址三\":\"被保人_2_di_zhi_3\",\"地址四\":\"被保人_2_di_zhi_4\"}],\"學歷\":\"被保人_2_xue_li\",\"國籍\":\"被保人_2_guo_ji\",\"出生日期\":\"被保人_2_chu_sheng_ri_qi\"},{\"性別\":\"被保人_3_xin_bie\",\"姓名\":\"被保人_3_xin_ming\",\"受益人\":[{\"性別\":\"受益人_2_xin_bie\",\"姓名\":\"受益人_2_xin_ming\",\"地址\":[{\"地址二\":\"受益人_2_di_zhi_2\",\"地址一\":\"受益人_2_di_zhi_1\",\"地址三\":\"受益人_2_di_zhi_3\",\"地址四\":\"受益人_2_di_zhi_4\"},{\"地址二\":\"受益人_2_di_zhi_2\",\"地址一\":\"受益人_2_di_zhi_1\",\"地址三\":\"受益人_2_di_zhi_3\",\"地址四\":\"受益人_2_di_zhi_4\"}],\"學歷\":\"受益人_2_xue_li\",\"國籍\":\"受益人_2_guo_ji\",\"出生日期\":\"受益人_2_chu_sheng_ri_qi\"},{\"性別\":\"受益人_3_xin_bie\",\"姓名\":\"受益人_3_xin_ming\",\"地址\":[{\"地址二\":\"受益人_3_di_zhi_2\",\"地址一\":\"受益人_3_di_zhi_1\",\"地址三\":\"受益人_3_di_zhi_3\",\"地址四\":\"受益人_3_di_zhi_4\"},{\"地址二\":\"受益人_3_di_zhi_2\",\"地址一\":\"受益人_3_di_zhi_1\",\"地址三\":\"受益人_3_di_zhi_3\",\"地址四\":\"受益人_3_di_zhi_4\"}],\"學歷\":\"受益人_3_xue_li\",\"國籍\":\"受益人_3_guo_ji\",\"出生日期\":\"受益人_3_chu_sheng_ri_qi\"},{\"array3\":[[{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],[{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"test\":\"paramTest\",\"param\":\"param1\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"},{\"param\":\"param1\",\"test\":\"paramTest\",\"test2\":\"paramTest2\",\"test3\":\"paramTest3\"}],\"list_stringtest1\",\"list_stringtest2\",\"list_stringtest3\"],\"性別\":\"受益人_4_xin_bie\",\"姓名\":\"受益人_4_xin_ming\",\"地址\":[{\"地址二\":\"受益人_4_di_zhi_2\",\"地址一\":\"受益人_4_di_zhi_1\",\"地址三\":\"受益人_4_di_zhi_3\",\"地址四\":\"受益人_4_di_zhi_4\"},{\"地址二\":\"受益人_4_di_zhi_2\",\"地址一\":\"受益人_4_di_zhi_1\",\"地址三\":\"受益人_4_di_zhi_3\",\"地址四\":\"受益人_4_di_zhi_4\"}],\"學歷\":\"受益人_4_xue_li\",\"國籍\":\"受益人_4_guo_ji\",\"出生日期\":\"受益人_4_chu_sheng_ri_qi\"}],\"地址\":[{\"地址二\":\"被保人_3_di_zhi_2\",\"地址一\":\"被保人_3_di_zhi_1\",\"地址三\":\"被保人_3_di_zhi_3\",\"地址四\":\"被保人_3_di_zhi_4\"},{\"地址二\":\"被保人_3_di_zhi_2\",\"地址一\":\"被保人_3_di_zhi_1\",\"地址三\":\"被保人_3_di_zhi_3\",\"地址四\":\"被保人_3_di_zhi_4\"}],\"學歷\":\"被保人_3_xue_li\",\"國籍\":\"被保人_3_guo_ji\",\"出生日期\":\"被保人_3_chu_sheng_ri_qi\"}]}";
		String json = "{\n" + "    \"agentCode\": \"8827056\",\n" + "    \"realName\": \"黃志芬\",\n" + "    \"gender\": \"F\",\n"
				+ "    \"birthday\": \"1971-12-16\",\n" + "    \"certiType\": \"1\",\n" + "    \"certiCode\": \"330922197112163521\",\n"
				+ "    \"organId\": \"1330902\",\n" + "    \"deptId\": \"1451900089\",\n"
				+ "    \"familyAddress\": \"浙江省舟山市定海區檀東頤景園40幢303室\",\n" + "    \"telephone\": \"\",\n"
				+ "    \"cellerTel\": \"13464832332\",\n" + "    \"email\": \"\",\n" + "    \"recommendManId\": \"\",\n"
				+ "    \"gradeId\": \"304\",\n" + "    \"enterCompanyDate\": \"2012-5-16\",\n" + "    \"leaveCompanyDate\": \"2014-1-6\",\n"
				+ "    \"agentStatus\": \"2\",\n" + "    \"probationDate\": \"2012-5-16\",\n" + "    \"turnDate\": \"2014/1/6 16:01:19\",\n"
				+ "    \"agentCate\": \"4\",\n" + "    \"reenterFlag\": \"0\",\n" + "    \"insertTime\": \"2014/1/6 16:01:19\",\n"
				+ "    \"initGradeId\": \"01\",\n" + "    \"greenPassport\": \"N\",\n" + "    \"agentSubCate\": \"\",\n"
				+ "    \"trainManId\": \"0000001\",\n" + "    \"indirectTrainId\": \"\",\n" + "    \"deptTrainId\": \"0000001\",\n"
				+ "    \"indDeptTrainId\": \"0000001\",\n" + "    \"areaTrainId\": \"0000001\",\n"
				+ "    \"indAreaTrainId\": \"0000001\",\n" + "    \"trainIdValid\": \"0000001\",\n"
				+ "    \"indiTrainIdValid\": \"0000001\",\n" + "    \"deptTrainIdValid\": \"0000001\",\n"
				+ "    \"indiDeptTrainIdValid\": \"0000001\",\n" + "    \"areaTrainIdValid\": \"0000001\",\n"
				+ "    \"indiAreaTrainIdValid\": \"0000001\",\n" + "    \"qualificationId\": \"0000001\",\n"
				+ "    \"practiceId\": \"0000001\",\n" + "    \"outAgentCode\": \"\",\n" + "    \"outOrganID\": \"\",\n"
				+ "    \"villageId\": \"0000001\",\n" + "    \"agencyCode\": \"19420070\",\n"
				+ "    \"qualificationStartDate\": \"2012/6/1\",\n" + "    \"qualificationEndDate\": \"2012/6/1\",\n"
				+ "    \"laborForm\": \"2\",\n" + "    \"gradeName\": \"\",\n" + "    \"versionId\": \"\",\n"
				+ "    \"updateTime\": \"2015-10-27 15:07:47\"\n" + "}";
		long start = System.currentTimeMillis();
		Map<String, Object> map = JSONUtil.json2Map(json);
		long end = System.currentTimeMillis();
		System.out.println("轉json=" + (end - start));

		start = System.currentTimeMillis();
		JSONUtil.toLowerCaseMap(map);
		end = System.currentTimeMillis();
		System.out.println("map key轉小寫=" + (end - start));

		Map<String, Object> map_date = new HashMap<String, Object>();
		map_date.put("crt_timestamp", DateUtil.sysTimestamp());
		map_date.put("crtDate", DateUtil.sysDate());
		map_date.put("crttime", DateUtil.sysTime());
		System.out.println(JSONUtil.formatJSONObject(map_date));
	}

	public static Map<String, Object> toLowerCaseMap(Map<String, Object> map) {
		Map<String, Object> param = new HashMap<String, Object>();
		for (Map.Entry<String, Object> entry : map.entrySet()) {
			param.put(entry.getKey().toLowerCase(), entry.getValue());
		}
		return param;
	}

	/**
	 * 將map轉換成對應的對象
	 * 
	 * @param map
	 *            需要轉換的map
	 * @param cla
	 *            需要轉換的對象的類型
	 * @return 轉換後的類的對象
	 */
	public static <T> T mapToObject(Map<String, Object> map, Class<T> cla) {
		try {
			T t = cla.newInstance();
			List<Field> fields = ClassUtil.getClassFields(cla);
			for (Field field : fields) {
				Object obj = map.get(field.getName());
				// 當map中沒有這個值的時候,不進行操作
				if (obj == null) {
					continue;
				}
				@SuppressWarnings("rawtypes")
				Class classType = field.getType();
				field.setAccessible(true);
				// 當是基本類型的時候,進行賦值的操作
				if (classType == List.class) {// 當是集合的時候判斷泛型否是基本類型,當不是基本類型的時候進行轉換
					Class<?> genericityClass = ClassUtil.getFieldGenericity(field);
					if (genericityClass == null || ClassUtil.isBaseType(classType)) {
						field.set(t, obj);
					} else {
						field.set(t, mapToListObj((List<Map<String, Object>>) obj, genericityClass));
					}
				} else if (ClassUtil.isBaseType(classType)) {
					field.set(t, obj);
				} else {
					if ((obj instanceof Map) || (obj instanceof HashMap)) {
						// 不是基本類型的時候,進行遞歸調用
						Object returnObj = mapToObject((Map) obj, classType);
						field.set(t, returnObj);
					} else {
						field.set(t, obj);
					}
				}
			}
			return t;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 將List<Map<String,Object>> 轉換成對應的類的集合
	 * 
	 * @param list
	 *            需要轉換的集合
	 * @param cla
	 *            對象的類型
	 * @return 轉換之後的集合
	 */
	public static <T> List<T> mapToListObj(List<Map<String, Object>> list, Class<T> cla) {
		try {
			List<T> returnList = new ArrayList<T>();
			for (Map<String, Object> map : list) {
				T t = mapToObject(map, cla);
				returnList.add(t);
			}
			return returnList;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 將對象轉換成map
	 * 
	 * @param obj
	 * @return
	 */
	public static Map<String, Object> objToMap(Object obj) {
		String json = "";
		Map<String, Object> map = new HashMap<String, Object>();
		try {
			json = mapper.writeValueAsString(obj);
			map = json2Map(json);
			return map;
		} catch (JsonProcessingException e) {
			throw new RuntimeException(e);
		}
	}


	
}




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章