簡體   English   中英

在Java Servlet中讀取JSON

[英]Read JSON in java servlet

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

您的代碼部分正確。 String newObj = request.getParameter("jsondata"); 是正確的。 然后,你必須創建jObjnewObj字符串。

String jsonString = <your json String>
JSONObject jsonObj = new JSONObject(jsonString);
JSONObject allObj = jsonObj.getJSONObject("obj");
JSONArray allArray = jsonObj.getJSONArray("all");

首先從請求對象中讀取數據:

String jsonStr = request.getParameter("jsondata");

使用org.json庫解析它並創建JsonObject:-

JSONObject jsonObj = new JSONObject(jsonStr );

現在,使用此對象獲取您的值:-

String id = jsonObj.getString("text");

您可以在這里看到完整的示例:-

如何在Java中解析Json

如果您的String數據類似,

{
    "text" : "ABC",
    "msg" : "9551667858",
    "all":[
        {"name":"one"},
        {"name":"two"}
        ],
    "obj":{
        "firstname":"John",
        "lastname":"Doe"
    }
}

它會變得像

String jsonData = request.getParameter("jsondata");

解析為JSONObject是。

JSONObject jsonObject = new JSONObject(jsonData); // put "String"

您可以像這樣獲取JSONArray,

JSONArray jsonArray = jsonObject.getJSONArray("all");

祝好運

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM