`
happyqing
  • 浏览: 3195626 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Can not deserialize instance of java.lang.String out of START_OBJECT token

阅读更多

无法反序列化

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中String和Date、Timestamp之间的转换

    在Java编程中,处理日期和时间是常见的任务,涉及到的主要类有`java.util.Date`、`java.sql.Timestamp`以及它们与字符串之间的转换。本文将详细介绍如何在Java中进行String、Date和Timestamp之间的相互转换。 一、...

    Newtonsoft.Json-master_Newtonsoft.Json_源码

    - **反序列化**:将 JSON 字符串还原为 .NET 对象,`JsonConvert.DeserializeObject()` 可以创建指定类型的实例,根据 JSON 数据填充对象属性。 2. **JsonSerializerSettings** - 在序列化和反序列化过程中,可以...

    Java语言Lang包下常用的工具类介绍

    Java语言Lang包下常用的工具类介绍 Lang包是Apache Jakarta Common项目中被使用最广泛的Java工具包之一,其中包含了许多实用的工具类,可以帮助开发者快速开发和维护Java应用程序。下面将对Lang包下的常用工具类...

    浙政钉服务端免登.NET(C#)SDK

    AccessToken _t = Newtonsoft.Json.JsonConvert.DeserializeObject(_r); Console.WriteLine(_t.content.data.accessToken); string _u = dd.GetUser(_t.content.data.accessToken, "a37e2b47f87648e3a342e75c...

    json.zip_JSON_json c#_json-c

    Person deserializedPerson = JsonConvert.DeserializeObject(jsonString); ``` JSON-c是一个用C编写的库,主要用于C或C++项目。在JSON-c中,处理JSON数据涉及创建JSON对象、解析JSON字符串以及将JSON对象转换回C...

    Json字符串转换Hashtable,DataTable,DataSet方法和反转换方法

    在IT行业中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,广泛用于Web服务与客户端之间的数据传输。它以其简洁、易于阅读和编写的特点,成为编程语言间数据交互的首选。本篇文章将深入探讨如何...

    java转json的包

    Apache Commons Lang提供了`org.apache.commons.lang3.builder.JsonBuilder`和`org.apache.commons.lang3.builder.JsonToStringStyle`,可以用来构建JSON表示的Java对象。 使用示例: ```java MyJavaObject obj...

    用Newtonsoft将json串转为对象的方法(详解)

    JObject jo = (JObject)JsonConvert.DeserializeObject(CurrentSelectedItemReq); 这个JObject是一个“值对”类型,比如说我们的json串是这样: { rows:[ [ {NumIid:001}, {PicUrl:xxx.png}, {Title:xxxxx}, ...

    winform调用webapi获取Token授权案例,webapi使用oauth2.0权限控制

    var tokenData = JsonConvert.DeserializeObject&lt;Dictionary&lt;string, string&gt;&gt;(tokenResponseContent); string accessToken = tokenData["access_token"]; ``` 4. **使用Token调用WebAPI**:现在,我们有了访问令牌...

    c#json格式解析

    第二步:using Newtonsoft... odds.Companyid = (string)ob["20"]; odds.Company = (string)ob["1"]; odds.Victorysp = (string)ob["2"] ; odds.Flatsp = (string)ob["3"]; 你还可以到 JSON的官方网站上下你需要的包

    自定义JSONObject属性过滤注解

    public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { CustomJsonFilter filter = ctxt.findAnnotation(CustomJsonFilter.class); if (filter != null && !filter....

    java 如何返回json格式数据.zip_JSON_java中json的使用

    在Java编程中,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析和生成。JSON是独立于语言的,但通常被用作JavaScript的一个子集。在Java中,我们经常需要将...

    json与java对象互转

    &lt;T&gt; T javaObject = gson.fromJson(jsonString, type); ``` 这里,`type`参数应该是一个`Type`对象,它表示目标Java对象的类型,可以通过反射获取。 #### 结论 通过本文的探讨,我们不仅了解了JSON与Java对象互转...

    JsonConverter解序列化DataTable小数位丢失.pdf

    ***库中的JsonConvert.DeserializeObject方法是实现此过程的关键,但是在此过程中可能会出现小数位丢失的问题。 2. 小数位丢失问题描述: 在使用***进行解序列化操作时,可能会出现小数位丢失的现象,具体表现在...

    shape_predictor_68_face.rar

    在检测过程中,dlib提供了一个名为`full_object_detection`的数据结构,它包含了每个检测到的人脸的所有68个关键点坐标。这个数据结构可以方便地与图像像素对应,从而进行进一步的图像处理或分析。 人脸检测的关键...

    java序列化与ObjectOutputStream和ObjectInputStream的实例详解

    Java序列化与ObjectOutputStream和ObjectInputStream的实例详解 Java序列化是指将Java对象转换为字节流的过程,以便将其存储或传输,而后可以将其恢复为原来的对象状态。Java提供了两种方式来实现序列化: ...

    ASP.NET DataTable与Json互转

    var dataTable = JsonConvert.DeserializeObject(jsonString, new DataTableConverter()); ``` 在这里,`DataTableConverter`是一个自定义的JsonConverter,负责将JSON转换为DataTable。 3. **System.Text.Json**: ...

    基于java的存储与读取对象.zip

    public MyObject deserialize() throws IOException, ClassNotFoundException { FileInputStream fileIn = new FileInputStream("myObject.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); My...

    XML_img.rar_Form_soap_xml_序列化_序列化和反序列化

    首先,让我们深入理解一下SOAP(Simple Object Access Protocol)。SOAP是一种基于XML的协议,主要用于在Web服务中交换结构化的和类型化的信息。SOAP消息通常包括一个头、一个主体以及可选的编码规则,使得数据能够...

Global site tag (gtag.js) - Google Analytics