2016-01-14 3 views
0

Я хочу прочитать этот 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 = новый JSONObject ("...."); – Lakshan

+0

Вы получите Идея Как разобрать JSOn на Java. и выполните некоторую логику –

ответ

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 (значение), значение должно быть String – bot

+0

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

1

ваш код частично. 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"); 
+0

Чувак, я пытаюсь, как будто это не работает. Вы можете проверить это после компиляции и запуска. – Lakshan

+0

Я дал строку json вручную в конструкторе JSONObject, и это сработало для меня. Проверьте формат request.getParameter («jsondata») –

+0

и используйте банку org.json, а не 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