玩!框架返回json响应

时间:2012-06-23 08:04:41

标签: java playframework playframework-2.0

我正在使用Play! Framework 2.0和我在这个框架中是新手。如何在白色html页面中只返回我的模型的json表示?

我正在做的是

public static void messagesJSON(){  
   List<Message> messages = Message.all();  
   renderJSON(messages);  
}

但我收到错误:无法使用将Unit作为处理程序返回的方法

3 个答案:

答案 0 :(得分:37)

怎么样 return ok(Json.toJson(Moments.all());

答案 1 :(得分:11)

您使用的方法来自Play 1.x,它在Play 2.0中略有不同。从文档中,这是一个如何回复sayHello JSON请求

的示例
@BodyParser.Of(Json.class)
public static Result sayHello() {
  ObjectNode result = Json.newObject();
  String name = json.findPath("name").getTextValue();
  if(name == null) {
    result.put("status", "KO");
    result.put("message", "Missing parameter [name]");
    return badRequest(result);
  } else {
    result.put("status", "OK");
    result.put("message", "Hello " + name);
    return ok(result);
  }
}

您要问的重要部分是return ok(result),它会返回JSON ObjectNode

答案 2 :(得分:2)

从列表中创建一个新模型:

public static Result getBusinesses(){
    List<Business> businesses = new Model.Finder(String.class,  Business.class).all();
    return ok(Json.toJson(businesses));  //displays JSON object on empty page
}

在Business.java类中,我有一个静态变量:

public static Finder<Long,Business> find = new Finder(Long.class, Business.class);

这将在localhost:9000 / getBusinesses上显示JSON对象 添加路线后:

GET      /getBusinesses   controllers.Application.getBusinesses()