2016-01-14 71 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