Json数组和Java框架2

时间:2013-11-29 22:22:25

标签: java json playframework-2.0

我正在使用一条路线将json发布到基于Play Framework 2的应用程序:

这是路径文件的内容:

POST    /api/localfeeds             controllers.Application.addMessage()

这是我的java代码:

public static Result addMessage() {
  JsonNode json = request().body().asJson();
  if(json == null) {
    return badRequest("Expecting Json data");
  } else {
        String message = json.findPath("message").getTextValue();
        String patate = json.findPath("patate").getTextValue();
        String potato = json.findPath("potato").getTextValue();
    if(message == null || patate == null || potato == null) {
      return badRequest("Missing parameter");
    } else {
    double patateD = Double.parseDouble(patate);
        double potatoD = Double.parseDouble(potato);
        return ok("Json " + json);      
    }
  }
}

最后我正在使用curl命令:

curl --header "Content-type: application/json" --request POST --data '{"message": "Guillaume", "potato": "59.34324", "patate": "38.32424"}' http://localhost:9000/api/localfeeds

现在,我想要做的是传递多个Json对象并用Java处理它们,这意味着我想让它工作:

curl --header "Content-type: application/json" --request POST --data '[{"message": "Guillaume", "potato": "59.34324", "patate": "38.32424"}, {"message": "Guillaume2", "potato": "592.34324", "patate": "382.32424"}]' http://localhost:9000/api/localfeeds

在Google上阅读答案时,我发现我应该使用JSONArray和JSONObject,但我在以下代码中收到错误:

public static Result addMessage() {
JsonNode json = request().body().asJson();
JSONArray jsonarr = new JSONArray(json);
if(json == null) {
return badRequest("Expecting Json data");
} else {
for(int i = 0; i < jsonarr.length(); i++){
    JSONObject jsonobj = jsonarr.getJSONObject(i);
    String message = jsonobj.findPath("message").getTextValue();
    String patate = jsonobj.findPath("patate").getTextValue();
    String potato = jsonobj.findPath("potato").getTextValue();
    if(message == null || patate == null || potato == null) {
    return badRequest("Missing parameter");
    } else {
        double patateD = Double.parseDouble(patate);
        double potatoD = Double.parseDouble(potato);
        return ok("jsonobj " + jsonobj);    
    }
}
}
}

我做错了什么?

0 个答案:

没有答案