如何从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";
}
答案 0 :(得分:0)
使用Apache CXF API
可以非常轻松地完成此操作。您必须提供将您的json数据直接转换为Object的json提供程序。 Ideally, we should not write marshalling or unmarshalling code service implementation.
http://cxf.apache.org/docs/jax-rs.html
或者如果要解组json数据,请使用ObjectMapper
的{{1}}
答案 1 :(得分:0)
“whatShouldIput”应该是“String”类型。还需要进行其他一些调整。这是一个使用您输入的示例程序。
John Doe
-----------
Anna Smith
-----------
Peter Jones
-----------
ok
输出:
var Hello = React.createClass({
render: function() {
return
<div>
<section>
<form action="http://localhost:9203/ask">
Text: <input type="text" name="text" value="Text"/> <br/>
Focus: <input type="text" name="focus" value="Focus"/> <br/><br/>
<input type="submit" value="Submit"/>
</form>
</section>
</div>;
}
});
React.render(<Hello name="World" />, document.getElementById('container'));
答案 2 :(得分:0)
至少在Jersey上,只需将其声明为JsonObject:
public String receiveJSON( JsonObject data )
它将自动为您解析
另请参阅https://jersey.java.net/documentation/latest/media.html#json.json-p以设置依赖关系