如何从post中使用json并使用javax.json读取它
如何在不添加更多依赖项或将json与实体bean关联的情况下完成此操作?
json (application/json)
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}服务器
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces("text/plain")
public String receiveJSON( whatShouldIput data ){
JsonReader reader = Json.createReader(data );
JsonObject obj = reader.readObject();
JsonArray results = obj.getJsonArray("data");
for (JsonObject result : results.getValuesAs(JsonObject.class)) {
System.out.print(result.getJsonObject("employees").getString("firstName"));
System.out.print(" ");
System.out.println(result.getString("lastName", ""));
System.out.println("-----------");
}
return "ok";
}发布于 2014-07-14 08:50:28
使用Apache CXF API可以很容易地做到这一点。您必须提供直接将json数据转换为对象的json提供程序。Ideally, we should not write marshalling or unmarshalling code service implementation.
http://cxf.apache.org/docs/jax-rs.html
或者,如果您想解封json数据,请使用ObjectMapper of jackson framework。
http://wiki.fasterxml.com/JacksonInFiveMinutes
发布于 2015-06-17 22:05:36
"whatShouldIput“应该是"String”类型。还需要做一些其他的调整。下面是一个使用您的输入的示例程序。
public static void main(String[] args) {
String input = "{\"employees\":["
+ "{\"firstName\":\"John\", \"lastName\":\"Doe\"},"
+ "{\"firstName\":\"Anna\", \"lastName\":\"Smith\"},"
+ "{\"firstName\":\"Peter\", \"lastName\":\"Jones\"}" + "]}";
System.out.println(receiveJSON(input));
}
public static String receiveJSON(String data) {
try (StringReader sReader = new StringReader(data);
JsonReader reader = Json.createReader(sReader)) {
JsonObject obj = reader.readObject();
JsonArray results = obj.getJsonArray("employees");
for (JsonObject result : results.getValuesAs(JsonObject.class)) {
System.out.print(result.getString("firstName"));
System.out.print(" ");
System.out.println(result.getString("lastName", ""));
System.out.println("-----------");
}
return "ok";
}
}输出:
John Doe
-----------
Anna Smith
-----------
Peter Jones
-----------
ok发布于 2015-06-17 22:12:17
至少在泽西,只需将其声明为JsonObject:
public String receiveJSON( JsonObject data )它会自动为你解析
还请参见https://jersey.java.net/documentation/latest/media.html#json.json-p来设置依赖项。
https://stackoverflow.com/questions/24731560
复制相似问题