私はJavaが初めてであり、この問題に2日間苦労し、ここで尋ねることにしました。
私はサーブレットで使用できるようにjQueryによって送信されたデータを読み取ろうとしています
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');
}
});
サーブレット
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
}
}
あなたが提供できる助けを本当に感謝します。
適切に送信しない限り、サーバー上で解析することはできません。
$.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');
}
});
JavaScriptオブジェクトをJSON文字列として送信するには、JSON.stringify
を使用する必要があります。
そして、サーバー上で:
String json = request.getParameter("test");
json
文字列は、手動で、または任意のライブラリを使用して解析できます( gson をお勧めします)。
JSONパーサーを使用して、データをサーブレットに解析する必要があります。
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
}
JSONを解析するにはJSONライブラリ(Jacksonなど)が必要です
Import org.json.simple.JSONObjectの代わりにimport org.json.JSONObjectを使用することで、私にとってはうまくいきました。