在java servlet中读取JSON

时间:2016-01-14 04:53:47

标签: java json servlets

我想在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");

3 个答案:

答案 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");

你可以在这里看到完整的例子: -

How to parse Json in java

答案 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");
祝你好运