创建JSON对象的JavaScript和发送它与Servlet [英] Creating json object in javascript and sending it to servlet
问题描述
我创造JSON对象来保存数据,然后将其发送给servlet。但是,当我尝试检索对象,并在的Java Servlet中显示其内容,这引发了我一个错误说一个JSONObject的文字必须以{以1字2号线1]。我不知道如何显示在Java中的JSON对象是被送到从JavaScript。下面是我在做什么:
i am creating json object to save data and then sending it to the servlet. But when i try to retrieve the object and display its contents in java servlet, it throws me an error saying " A JSONObject text must begin with '{' at 1 [character 2 line 1]". I do not know how to display the json object in java which is been sent from javascript. Here's what i am doing:
的Javascript code:
var arrayOfObjects = [];
arrayOfObjects.push({"divid":imageinc,"xCordinates":Xcord,"yCordinates":Ycord,"Height":canvasWidth,"Width":canvasHeight, "PageNo":pageNum});
显示Javascript的内容:
for (var i = 0; i < arrayOfObjects.length; i++) {
var object = arrayOfObjects[i];
for (var property in object) {
alert(property + '=' + object[property]);
}
}
发送对象的servlet使用jQuery的Ajax:
var param = 'objarray=' +arrayOfObjects;
$.ajax({
url: '/ProjectName/finalXmlServGen',
type: 'POST',
dataType: 'json',
data: param,
success: function(result) {
alert('SUCCESS');
}
});
我获得成功的消息,一旦我所说的阿贾克斯。现在,我收到此对象的servlet为:
String objarray = request.getParameter("objarray").toString();
try {
JSONObject jsonObj = new JSONObject(objarray);
String xmlString= XML.toString(jsonObj);
System.out.println("JSON to XML: " + xmlString);
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
我在控制台中看到的信息是一个JSONObject的文本必须首先以1字2号线1]'{'的错误。我如何解析的对象,并形成XML或字符串?
The message i see in my console is the error " A JSONObject text must begin with '{' at 1 [character 2 line 1]". How do i parse the object and form an xml or string?
推荐答案
在你需要的JSON数组首先转换为Java POJO bean是能够事情Java端(容易)用它做什么。有多个API来做到这一点;谷歌GSON和杰克逊有两种可能性。
On the Java side of things you need to convert the JSON array to a Java POJO bean first to be able to (easily) do something with it. There are multiple APIs to do this; Google GSON and Jackson are two possibilities.
杰克逊内部使用的球衣,参考实现的JAX-RS API的;它的工作原理相当不错,在我的经验。
Jackson is used internally by Jersey, the reference implementation of the JAX-RS API; it works very well in my experience.
这篇关于创建JSON对象的JavaScript和发送它与Servlet的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!