`

json-lib与jackson的比较

阅读更多

<script type="text/javascript">
(function(){
var p = {
url:location.href,
to:'qqmail',
desc:'', /*默认分享理由(可选)*/
summary:'',/*摘要(可选)*/
title:'',/*分享标题(可选)*/
site:'',/*分享来源 如:腾讯网(可选)*/
pics:'' /*分享图片的路径(可选)*/
};
var s = [];
for(var i in p){
s.push(i + '=' + encodeURIComponent(p[i]||''));
}
document.write(["<a target='_blank' ", 'href="http://mail.qq.com/cgi-bin/qm_share?', s.join("&"), '"', ' style="cursor:pointer;text-decoration:none;outline:none"><img src="http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_share_02.png"/></a>'].join(""));
})();
</script>

 

<a target="_blank" href="http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=HXB8bmxoeHFyXXtyZXB8dHEzfnJw" style="text-decoration:none;"><img src="http://rescdn.qqmail.com/zh_CN/htmledition/images/function/qm_open/ico_mailme_12.png"/></a>

 

json-lib的解析

 

public ResultData save1(HttpServletRequest request) {
		// 得到字符串形式的数据
		String orderStr = JsonUtils.formatStr(request.getParameter("order"));
		String salesLegInfoesStr = request.getParameter("salesLegInfoes");
		String postInfoStr = request.getParameter("postInfo");
		String travellersStr = request.getParameter("travellers");
		Map<String, Object> inMap = new HashMap<String, Object>();
		SalesOrder order = null;
		// 格式化json的时间,否则时间无法对应的保存
		JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] { "yyyy-MM-dd" }));
		order = (SalesOrder) JSONObject.toBean(
				JSONObject.fromObject(orderStr), SalesOrder.class);
		
		
		/*List<SalesLegInfo> salesLegInfos = (List<SalesLegInfo>) JSONArray
				.toCollection(JSONArray.fromObject(salesLegInfoesStr),
						SalesLegInfo.class);*/
		/*
		List<SalesLegInfo> salesLegInfos = new ArrayList<SalesLegInfo>();
		JSONArray salesLegInfoesArr = JSONArray.fromObject(salesLegInfoesStr);
		
		for(int i= 0;i<salesLegInfoesArr.size();i++){
			JSONObject salesLegInfoeJson = (JSONObject)salesLegInfoesArr.get(i);
			
			SalesLegInfo salesLegInfo = (SalesLegInfo)JSONObject.toBean((JSONObject.fromObject(salesLegInfoesArr.get(i))).discard("salesFreightRates"),SalesLegInfo.class);
			
			List<SalesFreightRate> salesFreightRates = (List<SalesFreightRate>)JSONArray
			.toCollection(JSONArray.fromObject(salesLegInfoeJson.get("salesFreightRates")),
					SalesFreightRate.class);
			salesLegInfo.setSalesFreightRates(salesFreightRates);
			salesLegInfos.add(salesLegInfo);
		}
		
		
		SalesPostInfo postInfo = (SalesPostInfo) JSONObject.toBean(
				JSONObject.fromObject(postInfoStr), SalesPostInfo.class);
		JSONArray travellersJsonArr = JSONArray.fromObject(travellersStr);// 旅客信息
		// 票的信息
		List<SalesTraveller> travellers = new ArrayList<SalesTraveller>();
		for (int i = 0; i < travellersJsonArr.size(); i++) {
			JSONObject travellerJson = (JSONObject)travellersJsonArr.get(i);
			SalesTraveller salesTraveller = (SalesTraveller) JSONObject.toBean(
					JSONObject.fromObject(JsonUtils.formatStr((JSONObject.fromObject(travellersJsonArr.get(i))).discard("tickets").toString())),
					SalesTraveller.class);

			JSONArray ticketsJsonArr = JSONArray.fromObject(travellerJson.get("tickets"));

			List<SalesTicket> tickets = new ArrayList<SalesTicket>();
			for (int j = 0; j < ticketsJsonArr.size(); j++) {
				JSONObject ticketJson = JSONObject.fromObject(ticketsJsonArr
						.get(j));
				if(!"null".equals(ticketJson.toString())&&ticketJson!=null&&!"".equals(ticketJson)){
					SalesTicket ticket = (SalesTicket) JSONObject.toBean(JSONObject
							.fromObject(JsonUtils.formatStr(ticketJson.discard("ticketUnites").toString())),
							SalesTicket.class);

					List<SalesTicketUnite> ticketUnite = (List<SalesTicketUnite>) JSONArray
							.toCollection(JSONArray.fromObject(((JSONObject)ticketsJsonArr
									.get(j)).get("ticketUnites")), SalesTicketUnite.class);

					ticket.setTicketUnites(ticketUnite);
					tickets.add(ticket);
				}
			}
			salesTraveller.setSalesTickets(tickets);
			travellers.add(salesTraveller);
		}
		order.setSalesLegInfos(salesLegInfos);
		order.setSalesPostInfo(postInfo);
		order.setSalesTravellers(travellers);
		salesOrderService.save(order);
		inMap.put("order", order);
		return new ResultData(inMap);
	}


jackson的解析

    public ResultData save(HttpServletRequest request) {
        // 得到字符串形式的数据
        Map<String, Object> rMap = new HashMap<String, Object>();
        String orderStr = JsonUtils.formatStr(request.getParameter("order"));
        String salesLegInfoesStr = request.getParameter("salesLegInfoes");
        String postInfoStr = request.getParameter("postInfo");
        String travellersStr = request.getParameter("travellers");
        ObjectMapper mapper= new ObjectMapper();
        mapper.getSerializationConfig().setDateFormat(new SimpleDateFormat("yyyy-MM-dd"));
        SalesOrder order = null;
        List<SalesLegInfo> salesLegInfoList = new ArrayList<SalesLegInfo>();
        try {
            order = mapper.readValue(orderStr, SalesOrder.class);
            SalesPostInfo salesPostInfo = mapper.readValue(postInfoStr, SalesPostInfo.class);
            
            List<LinkedHashMap<String, Object>> salesLegInfoMapList = mapper.readValue(salesLegInfoesStr, List.class);
            for(LinkedHashMap<String, Object> map: salesLegInfoMapList){
                List<SalesFreightRate> salesFreightRates = mapper.readValue(map.get("salesFreightRates").toString(),
                        new TypeReference<List<SalesFreightRate>>() {});
                map.remove("salesFreightRates");
                SalesLegInfo salesLegInfo = mapper.convertValue(map, SalesLegInfo.class);
                salesLegInfo.setSalesFreightRates(salesFreightRates);
                salesLegInfoList.add(salesLegInfo);
            }
            List<LinkedHashMap<String, Object>> travellersMapList = mapper.readValue(travellersStr, List.class);
            List<SalesTraveller> travellers = new ArrayList<SalesTraveller>();
            
            for (LinkedHashMap<String, Object> map: travellersMapList) {
                List<LinkedHashMap<String, Object>> ticketsMapList = mapper.readValue(map.get("tickets").toString(), List.class);
                List<SalesTicket> tickets = new ArrayList<SalesTicket>();
                for (LinkedHashMap<String, Object> inMap: ticketsMapList) {
                    List<SalesTicketUnite> ticketUnites = mapper.readValue(inMap.get("ticketUnites").toString(),
                            new TypeReference<List<SalesTicketUnite>>() {});
                    inMap.remove("ticketUnites");
                    SalesTicket ticket = mapper.convertValue(inMap, SalesTicket.class);
                    ticket.setTicketUnites(ticketUnites);
                    tickets.add(ticket);
                }
                map.remove("tickets");
                SalesTraveller salesTraveller = mapper.convertValue(map, SalesTraveller.class);
                salesTraveller.setSalesTickets(tickets);
                travellers.add(salesTraveller);
            }
            order.setSalesLegInfos(salesLegInfoList);
            order.setSalesPostInfo(salesPostInfo);
            order.setSalesTravellers(travellers);
            salesOrderService.save(order);
            rMap.put("order", order);
        } catch (JsonParseException e) {
            e.printStackTrace();
        } catch (JsonMappingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return new ResultData(rMap);
    }

 

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    Java四大json库gson+fastjson+jackson+json-lib

    Java常用四大json库,包含目前最新版gson,fastjson,jackson,json-lib

    json和map互转jackson和json-lib两种方式实现和区别

    jackson和json-lib两种方式实现map和json互转,别写出两者实现的区别,并上传了两者的包

    jackson-all.jar

    (2)相比json-lib框架,Jackson所依赖的jar包较少,只需下载:jackson-all-1.6.*.jar ~ jackson-all-1.8.0.jar 任何一个。 (3)转换效率:jackson &gt; Gson &gt; JSON-lib (4)简单易用并且性能也要相对高些。 (5)Jackson社区...

    json-lib.rar

    json-lib 是java运用广泛的json数据处理包 其他常用的还有Jackson

    json-lib-2.4-jdk15及其依赖jar包.rar

    Json.jar及其所有依赖的jar包很全

    json-jar包

    jackson-xc-1.8.3.jar jackson-mapper-asl-1.9.2.jar jackson-core-asl-1.9.2.jar jackson-jaxrs-1.8.3.jar json-lib-2.4-jdk15.jar

    structs实现ajax所需的jar包:jackson.zip

    jackson-core-0.67.0.12.jar, jackson-mapper-asl-1.9.9-sources.jar, json-lib-2.2.3-jdk15-javadoc.jar, json-lib-2.2.3-jdk15-sources.jar, json-lib-2.3-jdk15.jar, struts2-json-plugin-2.3.8.jar

    jackson-databind-2.10.5.jar

    Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换

    jackson-databind-2.13.0-rc1.jar

    Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换

    最全的json相关的jar包

    commons-beanutils-1.7.0.jar; commons-collections-3.2.1.jar;...jackson-core-asl-1.9.2.jar;jackson-jaxrs-1.8.3.jar;jackson-mapper-asl-1.9.2.jar;jackson-xc-1.8.3.jar;json-lib-2.4-jdk15.jar

    jackson-databind-2.13.0-rc2.jar

    Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换

    jackson-databind-2.12.5.jar

    Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换

    Jackson高性能的JSON处理.rar

    Jackson 框架,轻易转换JSON Jackson可以轻松的将Java对象转换成json对象和xml文档,...Jackson的jar all下载地址:http://jackson.codehaus.org/1.7.6/jackson-all-1.7.6.jar 然后在工程中导入这个jar包即可开始工作

    JAVA操作Json的最好的类库最新版jackson 2.7.1

    Jackson可以轻松的将Java对象转换成...1、按性能比较,Jackson &gt; Gson &gt; Json-lib。Jackson的处理能力甚至高出Json-lib有10倍左右 2、JSON-lib似乎已经停止更新,最新的版本也是基于JDK15,而Jackson的社区则较为活跃;

    jackson-databind-2.11.4.jar

    Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换

    jackson-databind-2.9.10.8.jar

    Java下常见的Json类库有Gson、JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换

    使用Jackson框架解析Json示例

    jackson-annotations-2.0.0.jar jackson-core-2.0.0.jar jackson-databind-2.0.0.jar json-lib-2.4-jdk15.jar

    jackson jar包下载

    jackson-annotations-2.5.4.jar jackson-core-2.5.4.jar jackson-core-asl-1.9.11.jar jackson-databind-2.5.4.jar jackson-mapper-asl-1.9.11.jar json-lib-2.4-jdk15.jar

    Jackson相关jar包jackson-all-1.8.1.jar等

    jackson-all-1.8.1.jar jackson-annotations-2.3.0.jar jackson-core-2.3.0.jar jackson-core-asl-1.9.9.jar jackson-core-lgpl-1.9.6.jar jackson-databind-2.3.0.jar jackson-mapper-asl-1.9.6.jar json: ...

    JsonPerformanceVS:mson,jackson,FastJson,Gson,Json-Smart,org.json,json-lib

    主流JSON引擎性能比较(GSON,FASTJSON,JACKSON,JSONSMART) 前言 测试目的: Purpose 测试当前主流Json引擎的序列化与反序列化性能,包括JSON,FASTJSON,JACKSON and SMARTJSON。 Test the performance of the ...

Global site tag (gtag.js) - Google Analytics