我想在servlet中读取这个json
{
"text" : "ABC",
"msg" : "9551667858",
"all":[
{"name":"one"},
{"name":"two"}
],
"obj":{
"firstname":"John",
"lastname":"Doe"
}
}
现在我想将这些值分别赋予string,jsonarray和json对象
这就是我这样做的方式
PrintWriter out = response.getWriter();
try {
String newObj = request.getParameter("text");;
JSONObject jObj = new JSONObject(request.getParameter("obj"));
JSONArray jArray=new JSONArray(request.getParameter("all"));
out.print(newObj);
} catch (Exception e) {
e.printStackTrace();
out.write(e.toString());
}
response.setContentType("application/json");
答案 0 :(得分:2)
您的代码部分正确。String newObj = request.getParameter("jsondata");
是正确的。然后,您必须从jObj
字符串创建newObj
。
String jsonString = <your json String>
JSONObject jsonObj = new JSONObject(jsonString);
JSONObject allObj = jsonObj.getJSONObject("obj");
JSONArray allArray = jsonObj.getJSONArray("all");
答案 1 :(得分:2)
首先从请求对象中读取数据: -
String jsonStr = request.getParameter("jsondata");
使用org.json库来解析它并创建JsonObject: -
JSONObject jsonObj = new JSONObject(jsonStr );
现在,使用此对象获取您的值: -
String id = jsonObj.getString("text");
你可以在这里看到完整的例子: -
答案 2 :(得分:1)
如果您的String数据如
{
"text" : "ABC",
"msg" : "9551667858",
"all":[
{"name":"one"},
{"name":"two"}
],
"obj":{
"firstname":"John",
"lastname":"Doe"
}
}
它可以变得像,
String jsonData = request.getParameter("jsondata");
Parse to JSONObject is。
JSONObject jsonObject = new JSONObject(jsonData); // put "String"
您可以获得JSONArray,
JSONArray jsonArray = jsonObject.getJSONArray("all");
祝你好运