【问题标题】:Play! Framework return json response玩!框架返回 json 响应
【发布时间】:2012-06-23 08:04:40
【问题描述】:

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

我正在做的是

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

但我得到错误:不能使用返回 Unit 作为处理程序的方法

【问题讨论】:

    标签: java playframework playframework-2.0


    【解决方案1】:

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

    【讨论】:

    • 这是一个更有用的答案,因为它会自动将整个对象图呈现为 json - 而不必如文档中所示手动构建 json 对象。
    • 我相信您也可以通过 Jackson 注释自定义 JSON 结构。
    • 添加类引用:
    • 导入 play.libs.Json @Alex ?
    • 行不行不行第一个大写O。
    【解决方案2】:

    您使用的方法来自 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

    【讨论】:

    • 作为返回类型的“索引”是什么意思?在我看来编译器不理解它,@BodyParser 也是错误(类型不匹配)这段代码对你有用吗?或者您能否展示进口和更广泛的可验证性图片。
    • @Stas,源文档中有错字,它应该像 Play 2.0 控制器中的每个 action 一样返回 Result
    • 好地方@Marcus。也感谢您更新 Github 上的文档。
    【解决方案3】:

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

    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()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多