How to read json sent by ajax in servlet
79,827
Solution 1
You won't be able to parse it on the server unless you send it properly:
$.ajax({
type: 'get', // it's easier to read GET request parameters
url: 'masterpaket',
dataType: 'JSON',
data: {
loadProds: 1,
test: JSON.stringify(test) // look here!
},
success: function(data) {
},
error: function(data) {
alert('fail');
}
});
You must use JSON.stringify
to send your JavaScript object as JSON string.
And then on the server:
String json = request.getParameter("test");
You can parse the json
string by hand, or using any library (I would recommend gson).
Solution 2
You will have to use the JSON parser to parse the data into the Servlet
import org.json.simple.JSONObject;
// this parses the json
JSONObject jObj = new JSONObject(request.getParameter("loadProds"));
Iterator it = jObj.keys(); //gets all the keys
while(it.hasNext())
{
String key = it.next(); // get key
Object o = jObj.get(key); // get value
System.out.println(key + " : " + o); // print the key and value
}
You will need a json library (e.g Jackson) to parse the json
Related videos on Youtube
Author by
Yosua Sofyan
Updated on October 14, 2020Comments
-
Yosua Sofyan over 3 years
I'm new to java and I struggling with this problem for 2 days and finally decided to ask here.
I am trying to read data sent by jQuery so i can use it in my servlet
jQuery
var test = [ {pv: 1000, bv: 2000, mp: 3000, cp: 5000}, {pv: 2500, bv: 3500, mp: 2000, cp: 4444} ]; $.ajax({ type: 'post', url: 'masterpaket', dataType: 'JSON', data: 'loadProds=1&'+test, //NB: request.getParameter("loadProds") only return 1, i need to read value of var test success: function(data) { }, error: function(data) { alert('fail'); } });
Servlet
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { if (request.getParameter("loadProds") != null) { //how do i can get the value of pv, bv, mp ,cp } }
I really appreciate any help you can provide.
-
Sotirios Delimanolis over 10 yearsI don't know javascript well enough. How does it serialize the
var
test
?
-