【问题标题】:Play framework and scala Convert List<T> for Json String播放框架和 scala Convert List<T> for Json String
【发布时间】:2016-02-12 04:52:56
【问题描述】:

我正在尝试将 List 转换为 Json 字符串,这是我的代码

  def getProductAsJson(txt:String):String={
                var products=new ListBuffer[Product]()


                 val conn = DB.getConnection()
                 try {
                    val stmt = conn.createStatement
                    val q="SELECT * from m_products where pro_name like '"+txt+"%' "
                    println(q);
                    val rs = stmt.executeQuery(q)
                     while (rs.next()) {
                      products+=Product(Some(rs.getInt("idproduct")),rs.getString("pro_name"),rs.getBigDecimal("pro_retprice"),
                      rs.getString("pro_description"),rs.getString("pro_brand"),rs.getString("pro_type"),rs.getString("pro_sup"),rs.getString("pro_supref"),rs.getBigDecimal("pro_supprice"),rs.getBigDecimal("pro_markup"),Some(rs.getString("pro_imgpath")),rs.getInt("pro_active"));
                    }
                } finally {
                    conn.close()
                }

                println(Json.toJson(products.toList).toString)
                return Json.toJson(products.toList).toString

           } 

但我得到了这个错误

未找到类型 List[models.Product] 的 Json 序列化程序。尝试 为此类型实现隐式写入或格式。

【问题讨论】:

  • 如果你只使用 Product 类来创建字符串,你可以像创建 Product 一样在 while 循环中手动构造 Json。

标签: json scala playframework playframework-2.0


【解决方案1】:

您是否为您的models.Product 实现了Writes?如果没有,请添加如下内容:

import play.api.libs.json._

implicit val productWrites = Json.writes[Product]

然后确保隐式 productWrites 在您调用 Json.toJson 的范围内。

https://www.playframework.com/documentation/2.4.x/ScalaJsonCombinators#Writeshttps://www.playframework.com/documentation/2.4.x/ScalaJsonInception#writes

【讨论】:

    猜你喜欢
    • 2013-07-11
    • 2015-06-09
    • 2020-06-22
    • 1970-01-01
    • 2014-07-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2014-01-13
    相关资源
    最近更新 更多