Ich bin neu in Java und kämpfe 2 Tage lang mit diesem Problem und entschied mich schließlich, hier zu fragen.
Ich versuche, von jQuery gesendete Daten zu lesen, damit ich sie in meinem Servlet verwenden kann
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
}
}
Ich freue mich über jede Hilfe, die Sie leisten können.
Sie können es nicht auf dem Server analysieren, wenn Sie es nicht ordnungsgemäß senden:
$.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');
}
});
Sie müssen JSON.stringify
verwenden, um Ihr JavaScript-Objekt als JSON-String zu senden.
Und dann auf dem Server:
String json = request.getParameter("test");
Sie können den String json
von Hand oder mit einer beliebigen Bibliothek analysieren (ich würde gson empfehlen).
Sie müssen den JSON-Parser verwenden, um die Daten in das Servlet zu parsen
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
}
Sie benötigen eine Json-Bibliothek (z. B. Jackson), um den Json zu analysieren
Die Verwendung des Imports org.json.JSONObject anstelle von import org.json.simple.JSONObject war für mich der Trick.
Siehe So erstellen Sie ein Json-Objekt aus einem String mit Zeichen wie ':', '[' und ']' in Java .