2016-01-14 73 views
0

我想在一個servlet閱讀本JSON閱讀JSON在Java Servlet的

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

現在我想單獨獲得此值串,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

檢查:http://stackoverflow.com/questions/2591098/how-to-parse-json-in-java –

+0

在那個例子中,這是什麼的JSONObject obj = new JSONObject(「....」); – Lakshan

+0

您將得到如何在Java中解析JSOn的想法。並做一些邏輯 –

回答

1

如果喜歡你的字符串數據,

{ 
    "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"); 

好運

+0

我這樣做了'String jsonData = request.getParameter(「jsondata」);'但響應是java.lang.NullPointerException – Lakshan

+0

如果您使用新的JSONObject(值),則值應爲字符串 – bot

+0

JSONObject invalid = new JSONObject({「a」:123,「b」:「abc」}); – bot

1

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

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

老兄,我嘗試這樣做沒有work.can編譯並運行後檢查此。 – Lakshan

+0

我在JSONObject構造函數中手動給出了json字符串,它對我很有用。檢查request.getParameter(「jsondata」) –

+0

的格式並使用org.json jar而不是json-simple jar –

1

首先讀取請求對象的數據: -

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

使用org.json庫來解析它,創造的JSONObject: -

JSONObject jsonObj = new JSONObject(jsonStr); 

現在,使用這個對象來獲取你的價值觀: -

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

你可以在這裏看到完整的示例: -

How to parse Json in java