无法反序列化
11:30:14,382 ERROR AbstractController:201 - Could not read JSON: Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: org.apache.catalina.connector.CoyoteInputStream@1d843f1; line: 1, column: 61] (through reference chain: cn.ql.module.projectPerson.domain.MkAppraisal["schoolReason"]); nested exception is org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT token
前台是传的json串
{"mkId":"402881aa3e4a50f3013e4a8d473504db","schoolScore":"3","schoolReason":{"length":1,"0":{},"context":{"jQuery17209899038962966509":130,"location":{}},"selector":"#school_reason"}}
后台是拿实体类接收
//添加推荐 @RequestMapping(value = "addMkAppraisal",produces = "application/json;charset=UTF-8") public void addMkAppraisal(@RequestBody MkAppraisal mkAppraisal,ModelMap model){ model.clear(); try { mkAppraisalBiz.save(mkAppraisal); model.addAttribute("status", "success"); } catch (BizException e) { log.info(e.getMessage()); model.addAttribute("status", e.getMessage()); } catch (Exception e) { log.error(e.getMessage(),e); model.addAttribute("status", e.getMessage()); } }
实体类中schoolReason是String类型的,
把前台传的json串alert出来,发现的问题,取值取得不对,
//添加推荐 function addAppraisal(){ var mkAppraisal = new Object(); mkAppraisal.mkId=$("#mk_id").val(); mkAppraisal.schoolScore=$("#school_score").val(); mkAppraisal.schoolReason=$("#school_reason").text(); if(mkAppraisal.schoolScore == "" || isNaN(mkAppraisal.schoolScore) || parseInt(mkAppraisal.schoolScore) < 1 || parseInt(mkAppraisal.schoolScore) > 100){ alert("请正确输入评分"); return; } if(mkAppraisal.schoolReason == ""){ alert("请输入推荐理由"); return; } alert(JSON.stringify(mkAppraisal)); $.ajaxPost(JSON.stringify(mkAppraisal),base+"/mkAppraisal/addMkAppraisal.json",saveSuccess,error); //通过 } function saveSuccess(data, textStatus){ if (data.status=="success") { alert("推荐成功!"); cancelWin(); } else if(data.status == "fail"){ alert("推荐失败!\n"+data.error); } else { alert("推荐失败!\n"+data.status); } } function error(data){ alert('错误', "推荐失败!"+data); }
页面引入的ajax.js,$.ajaxPost方法在他里边
<!-- crud ajax wrap-->
<script type="text/javascript" src="${baseStatic}/common/js/ajax.js"></script>
相关推荐
网络最大流问题是一个经典的图论问题,主要应用于通信网络、运输计划等领域,旨在寻找网络中从源节点到汇节点的最大流量。在这个问题中,每个节点代表一个“点”,每条边代表可以传输流量的“通道”,并且每条边都有...
在Java编程中,处理日期和时间是常见的任务,涉及到的主要类有`java.util.Date`、`java.sql.Timestamp`以及它们与字符串之间的转换。本文将详细介绍如何在Java中进行String、Date和Timestamp之间的相互转换。 一、...
- **反序列化**:将 JSON 字符串还原为 .NET 对象,`JsonConvert.DeserializeObject()` 可以创建指定类型的实例,根据 JSON 数据填充对象属性。 2. **JsonSerializerSettings** - 在序列化和反序列化过程中,可以...
Java语言Lang包下常用的工具类介绍 Lang包是Apache Jakarta Common项目中被使用最广泛的Java工具包之一,其中包含了许多实用的工具类,可以帮助开发者快速开发和维护Java应用程序。下面将对Lang包下的常用工具类...
AccessToken _t = Newtonsoft.Json.JsonConvert.DeserializeObject(_r); Console.WriteLine(_t.content.data.accessToken); string _u = dd.GetUser(_t.content.data.accessToken, "a37e2b47f87648e3a342e75c...
Person deserializedPerson = JsonConvert.DeserializeObject(jsonString); ``` JSON-c是一个用C编写的库,主要用于C或C++项目。在JSON-c中,处理JSON数据涉及创建JSON对象、解析JSON字符串以及将JSON对象转换回C...
在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务与客户端之间的数据传输。它以其简洁、易于阅读和编写的特点,成为编程语言间数据交互的首选。本篇文章将深入探讨如何...
Apache Commons Lang提供了`org.apache.commons.lang3.builder.JsonBuilder`和`org.apache.commons.lang3.builder.JsonToStringStyle`,可以用来构建JSON表示的Java对象。 使用示例: ```java MyJavaObject obj...
JObject jo = (JObject)JsonConvert.DeserializeObject(CurrentSelectedItemReq); 这个JObject是一个“值对”类型,比如说我们的json串是这样: { rows:[ [ {NumIid:001}, {PicUrl:xxx.png}, {Title:xxxxx}, ...
var tokenData = JsonConvert.DeserializeObject<Dictionary<string, string>>(tokenResponseContent); string accessToken = tokenData["access_token"]; ``` 4. **使用Token调用WebAPI**:现在,我们有了访问令牌...
第二步:using Newtonsoft... odds.Companyid = (string)ob["20"]; odds.Company = (string)ob["1"]; odds.Victorysp = (string)ob["2"] ; odds.Flatsp = (string)ob["3"]; 你还可以到 JSON的官方网站上下你需要的包
public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { CustomJsonFilter filter = ctxt.findAnnotation(CustomJsonFilter.class); if (filter != null && !filter....
在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON是独立于语言的,但通常被用作JavaScript的一个子集。在Java中,我们经常需要将...
<T> T javaObject = gson.fromJson(jsonString, type); ``` 这里,`type`参数应该是一个`Type`对象,它表示目标Java对象的类型,可以通过反射获取。 #### 结论 通过本文的探讨,我们不仅了解了JSON与Java对象互转...
***库中的JsonConvert.DeserializeObject方法是实现此过程的关键,但是在此过程中可能会出现小数位丢失的问题。 2. 小数位丢失问题描述: 在使用***进行解序列化操作时,可能会出现小数位丢失的现象,具体表现在...
在检测过程中,dlib提供了一个名为`full_object_detection`的数据结构,它包含了每个检测到的人脸的所有68个关键点坐标。这个数据结构可以方便地与图像像素对应,从而进行进一步的图像处理或分析。 人脸检测的关键...
Java序列化与ObjectOutputStream和ObjectInputStream的实例详解 Java序列化是指将Java对象转换为字节流的过程,以便将其存储或传输,而后可以将其恢复为原来的对象状态。Java提供了两种方式来实现序列化: ...
var dataTable = JsonConvert.DeserializeObject(jsonString, new DataTableConverter()); ``` 在这里,`DataTableConverter`是一个自定义的JsonConverter,负责将JSON转换为DataTable。 3. **System.Text.Json**: ...
public MyObject deserialize() throws IOException, ClassNotFoundException { FileInputStream fileIn = new FileInputStream("myObject.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); My...
首先,让我们深入理解一下SOAP(Simple Object Access Protocol)。SOAP是一种基于XML的协议,主要用于在Web服务中交换结构化的和类型化的信息。SOAP消息通常包括一个头、一个主体以及可选的编码规则,使得数据能够...