json格式字符串與java.util.Map的互轉(借助於jackson.jar)


 

package com.test.javaAPI.json;

/**
 * json工具類
 * 
 * @author Wei
 * @time 2016年10月2日 下午4:25:25
 */
public class UtilJackson {
	public static String jsonStr = "{\"parameters\":{\"PI_CAE574\":\"20160908\",\"PI_JSRQ\":\"20160908\",\"Pi_CAE920\":\"301\",\"Pi_YAE601\":\"1\",\"PI_BAE001\":\"511502\",\"Pi_JFDX\":\"1\",\"\":\"pkg_weiyl.getMatchResult\"},\"serviceId\":\"directJdbcService\",\"method\":\"savePointProcedure\"}";
	/**
	 * 比較復雜的json格式字符串
	 */
	public static String jsonStr_HN = "{\"DataPackage\":{\"JZZL\":[{\"CY\\\"BZ\":\"2\",\"CYQK\":\"\",\"CYRQ\":\"20090205\",\"CYZD\":\"霍亂\",\"CYZD1\":\"\",\"CYZDGJDM\":\"A00.901\",\"JZJLH\":\"136\",\"JZLB\":\"21\",\"RYRQ\":\"20090205\",\"RYZD\":\"霍亂\",\"RYZD1\":\"\",\"RYZDGJDM\":\"A00.901\",\"RYZS\":\"\",\"SSMC\":\"\",\"YYBH\":\"1000\",\"ZYH\":\"\",\"ZYJSLB\":\"1\"},{\"CYBZ\":\"2\",\"CYQK\":\"\",\"CYRQ\":\"20090202\",\"CYZD\":\"霍亂\",\"CYZD1\":\"\",\"CYZDGJDM\":\"A00.901\",\"JZJLH\":\"142\",\"JZLB\":\"21\",\"RYRQ\":\"20090201\",\"RYZD\":\"霍亂\",\"RYZD1\":\"\",\"RYZDGJDM\":\"A00.901\",\"RYZS\":\"\",\"SSMC\":\"\",\"YYBH\":\"1000\",\"ZYH\":\"\",\"ZYJSLB\":\"1\"},{\"CYBZ\":\"2\",\"CYQK\":\"\",\"CYRQ\":\"20090304\",\"CYZD\":\"霍亂\",\"CYZD1\":\"\",\"CYZDGJDM\":\"A00.901\",\"JZJLH\":\"132\",\"JZLB\":\"21\",\"RYRQ\":\"20090303\",\"RYZD\":\"霍亂\",\"RYZD1\":\"\",\"RYZDGJDM\":\"A00.901\",\"RYZS\":\"\",\"SSMC\":\"\",\"YYBH\":\"1000\",\"ZYH\":\"\",\"ZYJSLB\":\"1\"},{\"CYBZ\":\"2\",\"CYQK\":\"\",\"CYRQ\":\"20090306\",\"CYZD\":\"nihao\",\"CYZD1\":\"\",\"CYZDGJDM\":\"\",\"JZJLH\":\"140\",\"JZLB\":\"21\",\"RYRQ\":\"20090305\",\"RYZD\":\"nihao\",\"RYZD1\":\"\",\"RYZDGJDM\":\"\",\"RYZS\":\"\",\"SSMC\":\"\",\"YYBH\":\"1000\",\"ZYH\":\"\",\"ZYJSLB\":\"1\"}]},\"FunctionParams\":{\"FHZ\":\"1\",\"GET_PAGE_TOTAL\":\"4\",\"HAS_NEXT_REQUEST\":\"false\",\"MSG\":\"執行成功!\",\"SESSIONID\":\"QKSZPNrRPptTGs3ymqvJhQLZyxKJpd4XCHGJQBGFQcFQtwRYGvxS!306292812!1338878737991\"}}";
	public static String jsonStr_KEY_DataPackage = "DataPackage";
	public static String jsonStr_KEY_FunctionParams = "FunctionParams";
	public static String jsonStr4 = "{\"verified\":false,\"name\":{\"last\":\"Hankcs\",\"first\":\"Joe\"},\"userImage\":\"Rm9vYmFyIQ==\",\"gender\":\"MALE\"}";
	public static String jsonStr4_KEY1 = "verified";
}

  

 

package com.test.javaAPI.json;

import java.io.IOException;
import java.util.Map;

import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Test;

import com.sun.xml.internal.messaging.saaj.util.ByteOutputStream;

public class JacksonTest {
	public static void main(String[] args) throws JsonParseException, JsonMappingException, IOException {
		// ObjectMapper objMap = new ObjectMapper();
		// // Map map = objMap.readValue(UtilJackson.jsonStr, Map.class);
		// Map map = objMap.readValue(UtilJackson.jsonStr_HN, Map.class);
		// System.out.println(map.toString());
		// Set set = map.keySet();
		// Iterator it = set.iterator();
		// while (it.hasNext()) {
		// Object key = (Object) it.next();
		// Object value = map.get(key);
		// System.out.println("key:" + key + ",value:" + value);
		// }

		// new JacksonTest().removeDataPackage("DataPackage");
		String str = new JacksonTest().removeJsonObjByKey(UtilJackson.jsonStr4,
				UtilJackson.jsonStr4_KEY1);
		System.out.println(str);
	}

	/**
	 * 方法的作用:去除一個json格式字符串的某一個key 刪除 這個json字符串里的這個key對應的對象 該方法與框架中的 String
	 * cn.sinobest.framework.web.his.JsonManager.removeDataPackage(String
	 * jsonStr) 這個方法的功能一致
	 * 
	 * @param jsonKey
	 * @return
	 * @throws JsonParseException
	 * @throws JsonMappingException
	 * @throws IOException
	 */
	@Test
	public String removeDataPackage(String jsonKey) throws JsonParseException, JsonMappingException, IOException {
		ObjectMapper objMap = new ObjectMapper();
		Map map = objMap.readValue(UtilJackson.jsonStr_HN, Map.class);
		// map.remove("DataPackage");
		map.remove(jsonKey);
		ByteOutputStream bops = new ByteOutputStream();
		objMap.writeValue(bops, map);
		System.out.println(bops.toString());
		return null;
	}

	/**
	 * 
	 * @param jsonStr
	 * @param key
	 * @return
	 * @throws IOException
	 * @throws JsonMappingException
	 * @throws JsonParseException
	 */
	public String removeJsonObjByKey(String jsonStr, String key)
			throws JsonParseException, JsonMappingException, IOException {
		ObjectMapper objMap = new ObjectMapper();
		// 1 把json格式字符串轉換為 java.util.Map
		Map map = objMap.readValue(jsonStr, Map.class);
		// 2 刪除map中的對應key的項目
		map.remove(key);
		// 准備字節流,接收ObjectMapper中寫出的輸出流
		ByteOutputStream bops = new ByteOutputStream();
		// 3 把map重新轉換為json格式字符串
		objMap.writeValue(bops, map);
		if (!"".equals(bops)) {
			return bops.toString();
		}
		return "";
	}

}

  

控制台輸出:

{"name":{"last":"Hankcs","first":"Joe"},"userImage":"Rm9vYmFyIQ==","gender":"MALE"}

http://tool.oschina.net/codeformat/json 這個json字符串格式化工具格式化后的效果:

 

 

{ "name": { "last": "Hankcs", "first": "Joe" }, "userImage": "Rm9vYmFyIQ==", "gender": "MALE" }



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM