【发布时间】:2014-03-30 12:12:06
【问题描述】:
我的jsp和jquery代码为
var article = new Object();
article.title = "abc";
article.url = "abc";
article.categories = [1,2,3];
article.tags = [1,2,3];
console.log('hi');
$.ajax({
type: 'POST',
url: URL,
contentType:"application/json",
data: JSON.stringify(article),
dataType: 'json',
success: function(result) {
console.log(result);
},
error: function(e){
alert('Error in Processing');
}
});
我的java代码为
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String json = "";
if(br != null){
json = br.readLine();
}
// 2. initiate jackson mapper
ObjectMapper mapper = new ObjectMapper();
//mapper.configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);
// 3. Convert received JSON to Article
Article article = mapper.readValue(json, Article.class);
现在我的北极圈课是
public class Article {
private String title;
private String url;
private List<String> categories;
private List<String> tags;
//getters and setters
}
现在我遇到了异常 在行
String json = "";
if(br != null){
json = br.readLine();
}
我得到json如下
{"title":"abc","url":"abc","categories":"[1, 2, 3]","tags":"[1, 2, 3]"}
其实应该是
{"title":"abc","url":"abc","categories":[1, 2, 3],"tags":[1, 2, 3]}
我不明白发生了什么 因此我得到例外 com.fasterxml.jackson.databind.JsonMappingException:无法反序列化 java.util.ArrayList 的实例出 VALUE_STRING 令牌 在 [来源:java.io.StringReader@f94ca;行:1,列:27](通过引用链:com.ihexa.common.admin.cabsharing.action.Article["categories"])
我通过以下方式解决了答案
文章用户 = mapper.readValue(point, Article.class);
System.out.println(user.getRouteFirst());
Gson gson = new Gson();
TypeToken> token = new TypeToken>(){}; 列出 personList = gson.fromJson(user.getRouteFirst(), token.getType());
文章分类为
公开课文章{
private String routeFirst;
private String routeSecond;
//setter 和 getter
}
jsp jquery 代码为
var article = new Object();
article.routeFirst = newRoute1;
article.routeSecond = newRoute2;
$.ajax({
type: 'POST',
url: '../..//admin/cabsharing/findIntersesctionPoint.do',
data : "point="+JSON.stringify(article),
dataType: 'json',
success: function(result) {
console.log("success");
},
error: function(e){
console.log("error");
}
});
【问题讨论】:
-
我根据您的要求更新我的答案。请检查并告诉我。
标签: java jquery ajax json org.json