- 浏览: 26247 次
- 性别:
- 来自: 广州
-
文章分类
最新评论
关于json的解析
json在javaweb中是一个很好的传输数据的工具,封装的数据一步了然
所需要的jar包下载地址:json-jar包(点击0积分下载)
js的代码
function saveOrder(){ var postMethod ;//邮寄方式 if($("#post_method").val==1){ postMethod = 1; }else{ $("[name='company']").each(function(){ if(this.checked){ postMethod = this.id.substr(this.id.indexOf("_")+1,this.id.length); } }); } var postInfo;//邮寄信息 var index = -1; $("[name='radio2']").each(function(){//检查是否是用的历史邮寄信息 if(this.checked){ index = this.id.substr(this.id.indexOf("_")+1,this.id.length); } }); if(index!=-1){ postInfo = { "address":$("#address_"+index).html(), "city":$("#city"+index).html(), "county":$("#seat"+index).html(), "linkManName":$("#postLinkManName"+index).html(), "linkManPhone":$("#linkManTel"+index).html(), "linkManSex":null, "postCode":null, "postMethod":postMethod,//邮寄方式 "province":$("#province"+index).html(), "remark":$("#remark").html() }; }else{ postInfo = { "address":$("#address").val(), "city":$("#city").val(), "county":$("#seat").val(), "linkManName":$("#postLinkManName").html(), "linkManPhone":$("#linkManTel").html(), "linkManSex":$("#sex").val(), "postCode":$("#postCode").html(), "postMethod":postMethod,//邮寄方式 "province":$("#province").val(), "remark":$("#remark").html() }; } var isPost = false; $("[name='isPost']").each(function(){//检查是否需要邮寄 if(this.checked&&this.value=="1"){ isPost = true; } }); if(!isPost){ postInfo = {}; } var travellers = new Array(); for (var i = 0;i < $("#tabCount").val();i++) { var travellerType = $("#travellerType"+i).val(); var tickets = new Array();//重置客票,防止信息未清除 for(var j = 0;j<$("#priceCount").val();j = j + 2){//客票信息处理 var ticketUnites = [{"arriveCity":$("#departAirport"+j).html(), //票联信息 "arriveTime":$("#departDate"+j).html()+" "+$("#arriveTime"+j).html(), "departCity":$("#arriveAirport"+j).html(), "departTime":$("#flightDate"+j).html()+" "+$("#departTime"+j).html(), "flightNum":$("#flightNum"+j).html(), "serialNum":1, "shippingSpace":$("#shippingSpace"+j).html()}, {"arriveCity":$("#departAirport"+j).html(), "arriveTime":$("#departDate"+j).html()+" "+$("#arriveTime"+j).html(), "departCity":$("#arriveAirport"+j).html(), "departTime":$("#flightDate"+j).html()+" "+$("#departTime"+j).html(), "flightNum":$("#flightNum"+j).html(), "serialNum":2, "shippingSpace":$("#shippingSpace"+j).html()}]; tickets[j]={ "airBuildCost":$("#airBuildCost"+j+"_"+travellerType).html()+$("#airBuildCost"+(j+1)+"_"+travellerType).html(), "airOilCost":$("#airOilCost"+j+"_"+travellerType).html()+$("#airOilCost"+(j+1)+"_"+travellerType).html(), "insuranceCost":0, "isReturn":false, "ticketPrice":$("#ticketPrice"+j+"_"+travellerType).html()+$("#ticketPrice"+(j+1)+"_"+travellerType).html(), "ticketUnites":JSON.stringify(ticketUnites) }; } travellers[i] = {//旅客 "birthDate":$("#birthDate"+i).html(), "cnFirstName":null, "cnFullName":$("#cnFullName"+i).val(), "cnLastName":null, "credCode":$("#credCode"+i).html(), "credType":$("#credType"+i).html(), "customerCode":$("#customerCode"+i).html(), "enFirstName":null, "enFullName":null, "enLastName":null, "isBuyInsurance":true, "memberCardCode":$("#memberCardCode"+i).html(), "memberCardType":$("#memberCardType"+i).html(), "parendName":$("#parendName"+i).val(), "parentId":null, "phone":$("#phone"+i).html(), "travellerType":travellerType, "tickets":JSON.stringify(tickets) }; } var legInfoes = new Array(); var tickets = new Array(); var salesTicketPrice = new Array(); for (var i = 0 ; i < $("#fCount").val() ; i++) { legInfoes[i] = {//航班信息 "aircraftType" : $("#aircraftType" + i).html(), "arriveAirport" : $("#to" + i).html(), "arriveTime":$("#arriveTime" + i).html(), "changeStop" : $("#changeStop" + i).html(), "departAirport":$("#departAirport" + i).html(), "departTime":$("#departTime" + i).html(), "flightDate":$("#flightDate"+i).html(), "flightNum":$("#flightNum" + i).html(), "meal":$("#meal" + i).html(), "shippingSpace":$("#shippingSpace" + i).html() }; }; var order = {"airBuildCost" : $("#airBuildCost").html(),//订单 "airOilCost" : $("#airOilCost").html(), "insuranceCost" : $("#insuranceCost").html(), "isReduceOrder":false, "linkManBackPhone":$("#linkManBackPhone").html(), "linkManName":$("#linkManName").html(), "linkManPhone":$("#linkManPhone").html(), "memberCardCode":$("#membershipCardCode1").html(), "memberCredCode":$("#credentialsCode1").html(), "memberName":$("#travellerChFullName1").html(), "orderStatus":1, "orderType":1, "privilegeCost":$("#privilegeCost").html(), "reserveDate":(($("#reserveTicketdate").html()=='')?null:$("#reserveTicketdate").html()), "reserveTime":$("#reserveTicketTime").html(), "ticketPrice":$("#ticketPrice").html(), "totalPayCost":$("#totalPayCost").html()}; var obj = {"order" : JSON.stringify(order), "salesLegInfoes" : JSON.stringify(legInfoes), "postInfo" : JSON.stringify(postInfo), "travellers" : JSON.stringify(travellers) }; $.post("${ctx}/response/save/",obj,function(data){ alert(data.flag); }); //$(".dialog").dialog("open"); } </script>后台得到的数据大概是:
{"order": "{\"airBuildCost\":\"300\",\"airOilCost\":\"420\", \"insuranceCost\":\"100\",\"isReduceOrder\":false, \"linkManBackPhone\":\"fref\",\"linkManName\":\"qfqf\", \"linkManPhone\":\"fer\",\"orderStatus\":1,\"orderType\":1, \"privilegeCost\":\"1000\",\"reserveDate\":\"\", \"reserveTime\":\"21\",\"ticketPrice\":\"2410\", \"totalPayCost\":\"10000\"}", "salesLegInfoes":"[ {\"aircraftType\":\"77A\",\"arriveTime\":\"14:00\",\"changeStop\":\"0\",\"departAirport\":\"CAN\",\"departTime\":\"11:00\",\"flightDate\":\"2011-5-20\",\"flightNum\":\"HU3101\",\"meal\":\"正餐\",\"shippingSpace\":\"\"}, {\"aircraftType\":\"77A\",\"arriveTime\":\"14:00\",\"changeStop\":\"0\",\"departAirport\":\"CAN\",\"departTime\":\"11:00\",\"flightDate\":\"2011-5-20\",\"flightNum\":\"HU3101\",\"meal\":\"正餐\",\"shippingSpace\":\"\"}, {\"aircraftType\":\"77A\",\"arriveTime\":\"14:00\",\"changeStop\":\"0\",\"departAirport\":\"CAN\",\"departTime\":\"11:00\",\"flightDate\":\"2011-5-20\",\"flightNum\":\"HU3101\",\"meal\":\"正餐\",\"shippingSpace\":\"\"}]", "postInfo":"{}", "travellers":"[ {\"birthDate\":\"2013-07-01\",\"cnFirstName\":null,\"cnFullName\":\"\\n \\t\\t\\t\\n \\t\\t\\t\\tfewdfwedwefgreg\\n \\t\\t\\t\\t\\n \\t\\t\\t\\t\\n \\t\\t\\t\\n \\t\\t\\t \",\"cnLastName\":null,\"credCode\":\"fewf\",\"customerCode\":\"fwerf\",\"enFirstName\":null,\"enFullName\":null,\"enLastName\":null,\"isBuyInsurance\":true,\"memberCardCode\":\"qq\",\"memberCardType\":\"\",\"parendName\":\"\",\"parentId\":null,\"phone\":\"fwe\",\"travellerType\":\"\", \"tickets\":\"[ {\\\"airBuildCost\\\":null,\\\"airOilCost\\\":null,\\\"insuranceCost\\\":0,\\\"isReturn\\\":false,\\\"ticketPrice\\\":null, \\\"ticketUnites\\\":\\\"[ {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":1,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"}, {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":2,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"} ]\\\"},null, {\\\"airBuildCost\\\":null,\\\"airOilCost\\\":null,\\\"insuranceCost\\\":0,\\\"isReturn\\\":false,\\\"ticketPrice\\\":null, \\\"ticketUnites\\\":\\\"[ {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":1,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"}, {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":2,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"} ]\\\"}]\"}, {\"birthDate\":\"2013-07-01\",\"cnFirstName\":null,\"cnFullName\":\"\\n \\t\\t\\t\\n \\t\\t\\t\\tferwfer\\n \\t\\t\\t\\t\\n \\t\\t\\t\\t\\n \\t\\t\\t\\n \\t\\t\\t \",\"cnLastName\":null,\"credCode\":\"\",\"customerCode\":\"\",\"enFirstName\":null,\"enFullName\":null,\"enLastName\":null,\"isBuyInsurance\":true,\"memberCardCode\":\"\",\"memberCardType\":\"\",\"parendName\":\"\",\"parentId\":null,\"phone\":\"\",\"travellerType\":\"\", \"tickets\":\"[ {\\\"airBuildCost\\\":null,\\\"airOilCost\\\":null,\\\"insuranceCost\\\":0,\\\"isReturn\\\":false,\\\"ticketPrice\\\":null, \\\"ticketUnites\\\":\\\"[ {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":1,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"}, {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":2,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"} ]\\\"},null, {\\\"airBuildCost\\\":null,\\\"airOilCost\\\":null,\\\"insuranceCost\\\":0,\\\"isReturn\\\":false,\\\"ticketPrice\\\":null, \\\"ticketUnites\\\":\\\"[ {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":1,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"}, {\\\\\\\"arriveCity\\\\\\\":\\\\\\\"CAN\\\\\\\",\\\\\\\"arriveTime\\\\\\\":\\\\\\\"2011-5-21 14:00\\\\\\\",\\\\\\\"departCity\\\\\\\":\\\\\\\"PEK\\\\\\\",\\\\\\\"departTime\\\\\\\":\\\\\\\"2011-5-20 11:00\\\\\\\",\\\\\\\"flightNum\\\\\\\":\\\\\\\"HU3101\\\\\\\",\\\\\\\"serialNum\\\\\\\":2,\\\\\\\"shippingSpace\\\\\\\":\\\\\\\"\\\\\\\"} ]\\ \"} ]\ "} ]" }
可以看到,这里的json是很复杂的
解析如下
/** * @description:订单的增加 * @author: luoxiaoyang * @createDate: 2013-7-16 * @param request * @return: */ @SuppressWarnings("unchecked") @RequestMapping(value = "/save/", method = RequestMethod.POST ,headers = "X-Requested-With=XMLHttpRequest") @ResponseBody public ResultData save(HttpServletRequest request) { // 得到字符串形式的数据 String orderStr = request.getParameter("order"); String salesLegInfoesStr = request.getParameter("salesLegInfoes"); String postInfoStr = request.getParameter("postInfo"); String travellersStr = request.getParameter("travellers"); // 格式化json的时间,否则时间无法对应的保存 JSONUtils.getMorpherRegistry().registerMorpher( new DateMorpher(new String[] { "yyyy-MM-dd" })); SalesOrder order = (SalesOrder) JSONObject.toBean(JSONObject .fromObject(orderStr), SalesOrder.class); List<SalesLegInfo> salesLegInfos = (List<SalesLegInfo>) JSONArray .toCollection(JSONArray.fromObject(salesLegInfoesStr), SalesLegInfo.class); SalesPostInfo postInfo = (SalesPostInfo) JSONObject.toBean(JSONObject .fromObject(postInfoStr), SalesPostInfo.class); JSONArray travellersJsonArr = JSONArray.fromObject(travellersStr);// 旅客信息 System.out.println("travellersJsonArr:"+travellersJsonArr); // 票的信息 List<SalesTraveller> travellers = new ArrayList<SalesTraveller>(); System.out.println(travellersJsonArr.size()); for (int i = 0; i < travellersJsonArr.size(); i++) { JSONObject travellerJson = JSONObject.fromObject(travellersJsonArr .get(i)); System.out.println("salesTraveller:"+travellerJson.discard("")); SalesTraveller salesTraveller = (SalesTraveller) JSONObject.toBean( JSONObject.fromObject(travellerJson.discard("tickets")), 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)); SalesTicket ticket = (SalesTicket) JSONObject.toBean(JSONObject .fromObject(ticketJson.discard("ticketUnites")), SalesTicket.class); List<SalesTicketUnite> ticketUnite = (List<SalesTicketUnite>) JSONArray .toCollection(JSONArray.fromObject(ticketJson .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); orderService.save(order); System.out.println(JSONObject.fromObject(order).toString()); return new ResultData(true); }
发表评论
文章已被作者锁定,不允许评论。
相关推荐
本篇文章将深入探讨JSON解析的相关知识点。 首先,JSON的基本结构包括对象和数组。对象是以大括号 `{}` 包围的键值对集合,键(key)是字符串,用双引号包围,值(value)可以是各种数据类型,包括字符串、数字、...
PB Json解析库是一种用于处理协议缓冲区(Protocol Buffers,简称PB)与JSON之间相互转换的工具。在软件开发中,尤其是涉及到数据交换时,PB和JSON都扮演着重要的角色。PB是Google推出的一种高效的数据序列化协议,...
易语言、易Json解析模块、水淼Json 易语言水淼JSON解析模块源码自主解析JSON数据类型,使用树来直观清晰显示出所有结构,辅助程序员快速定位JSON节点提高开发效率。
标题中的“json离线解析工具”指的是无需互联网连接即可使用的JSON解析软件,这对于那些网络环境不稳定或者需要保护数据隐私的用户来说非常实用。描述中提到的这款“Windows版绿色离线json解析工具”,强调了它的...
我们将涵盖两种解析方式:本地JSON解析和在线JSON解析。 ### 1. JSON基础知识 JSON是一种文本格式,基于JavaScript语法,但独立于语言。它以键值对的形式存储数据,如`"key": "value"`。数组可以通过方括号`[]`表示...
关于JSON解析,有以下几个核心概念和操作: - **解析**:将JSON字符串转化为数据结构,如Java的对象、Python的字典或JavaScript的对象。 - **序列化**:相反的过程,即将数据结构转化为JSON字符串。 - **数据类型...
适用于json解析,美观直观的观看数据
总的来说,理解和掌握JSON解析是现代Web开发的基本技能之一。无论你是前端开发者还是后端开发者,都需要能够有效地读取、解析和生成JSON数据。通过学习和实践,你可以熟练地利用JSON这一强大的工具进行数据交换和...
标题中的"JSON解析文件.rar"表明这是一个关于JSON解析的资源包,可能是包含源代码、教程或示例程序,帮助开发者在C语言环境下处理JSON数据。这个资源包可能简化了通常的JSON解析过程,声称仅需要3-5个函数就能完成...
以下是一些关于JSON解析的重要知识点: 1. JSON结构:JSON数据以键值对的形式存在,类似于JavaScript对象。其基本结构包括对象(键值对的集合,用花括号{}包围)和数组(有序元素的集合,用方括号[]包围)。键必须...
7. **错误处理和调试**:在调用API和处理JSON过程中,PB开发者需要考虑错误处理,包括网络错误、JSON解析错误等,同时利用PB的调试工具进行问题排查。 通过这些知识点,PB开发者能够构建起与JSON数据源的有效交互,...
水淼JSON解析模块是针对易语言开发的一个扩展组件,由SanYe(可能是一位易语言开发者或者社区成员)编写。这个模块的核心功能是解析JSON(JavaScript Object Notation)数据,这是一种轻量级的数据交换格式,广泛...
"鬼脸JSON解析小工具forMac"正是这样一款专为MAC用户设计的实用工具,它的特点在于其独特的鬼脸logo,使得软件在众多工具中具有较高的辨识度。 该工具的主要功能包括: 1. **实时解析**:用户可以直接将包含JSON...
本着探究 JSON 原理的目的,我将会在这DEMO中实现了一个简单的JSON解析器。由于 JSON 本身比较简单,解析起来也并不复杂。所以如果大家感兴趣的话,在看完本DEMO后,不妨自己动手实现一个 JSON 解析器。
JSON解析.dll是Unity中用于处理JSON数据的库,它允许开发者将JSON字符串转化为C#对象或者将C#对象转化为JSON字符串。 在Unity与WebGL的结合使用中,由于WebGL的目标是浏览器环境,因此存在一些特定的限制。例如,...
3. **JSON解析**:易语言提供了JSON解析的库或模块,允许我们解析JSON字符串为易语言的数据结构,如数组或字典。解析过程中,我们需要识别并提取出订单的关键信息,如订单ID、客户信息、商品详情等。 4. **将订单...
在C#编程环境中,处理JSON数据是常见的任务,尤其是在需要解析多级嵌套结构时。本篇文章将深入探讨如何在C#中对多级JSON进行解析,并通过实际代码示例来阐述其原理。 首先,我们需要了解C#中用于解析JSON的库,最...
易语言JSON解析模块2.0源码例程程序结合易语言扩展界面支持库和应用接口支持库,调用API函数实现JSON解析、生成、编辑。点评:易语言JSON解析模块2.0源码通过封装JSON类形成稳定强大的json处理核心。资源作者:。...
不过,需要注意的是,由于这是2015年的版本,可能不包含最新的JSON解析技术和安全更新,对于最新的JSON规范支持可能存在局限,而且在当前的软件环境下运行可能不稳定或者存在兼容性问题。建议使用最新版本的JSON解析...
本篇文章将深入探讨JSON解析以及Gson库的使用方法。 一、JSON解析基础 JSON是一种独立于语言的数据表示格式,其结构清晰,易于人阅读和编写,同时也容易让机器解析和生成。JSON主要由键值对(key-value pairs)...