我正在尝试从 Postgresql 数据库(v9.5)表获取 json 响应以显示在我的视图页面上,我尝试了以下操作,因为我的应用程序执行正常,但我没有获取/显示我所需的正确 json 数据(如它包含:Stream、斜杠()和问号(?),如Stream类型json)。请让我知道如何显示我想要的输出,如下所示?
我的输出:
Stream("[{\"_testid\":{\"testid0\":\"testnumber\"},\"testtitle\":\"TestTitle\"}]", ?)
但我想要的输出:
[{"_testid":{"testid0":"testnumber"},"testtitle":"TestTitle"}]
控制器:
class Test extends Controller {
def getTest = Action {
var sql: SqlQuery = SQL("select name::TEXT from test");
def values: String = DB.withConnection { implicit connection =>
sql().map(row => row[String]("name")).toString
}
Ok(values)
}
table:
create table test(
id serial primary key,
name json not null);
如文档中所示,Anorm 附带列解析器 https://playframework.com/documentation/2.4.x/ScalaAnorm#Column-parsers对于 JDBC 标准类型。
PostgreSQL JSON 类型不是其中之一。这是供应商特定的类型。
您可以通过将 SQL 列强制转换为来处理语句中的这种特定转换TEXT
之前要经过 JDBC(就像普通的 JDBC String 那样)。
SELECT json_col::TEXT FROM test
您可以实施自定义Column[JsValue]
(参见文档),将PGObject
具体到 PostgreSQL 的 JDBC 驱动进PlayJsValue
.
您可以将列映射为anorm.Object
(SqlParser.get[anorm.Object]("col")
),并处理应用程序中的不透明值。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)