내 데이터베이스에서 select 쿼리를 실행하고 json을 반환하는 서버를 작성하고 있습니다. 나는 그 작업의 대부분을 해왔지만 문자열에 nullable 컬럼을 파싱하는 것으로 막혔다.Anorm null 값
val result = SQL("SELECT * FROM Table limit 5;")().map(_.asList.map({_.toString})).toList
val jsonResp = Json.toJson(result)
그리고 열이 null 값 문자열 일부 (123)를 가질 수 있다면 그 생성 대신에 123 나는 match
와 시도하지만 명령 작성에 실패했습니다. 어쩌면 비슷한 문제가 있었을 것입니다. 그런 종류의 대응 방법을 알고 있습니까?
편집 : 나는 패턴 매칭을 추가하여 일부 진전 :
val result = SQL(query)()
.map(_.asList.map(
{
case Some(s) => s.toString
case None => ""
case v => v.toString
}
)).toList
하지만 그 문제를 해결하는 좋은 방법입니다 잘 모르겠어요. 여전히 아이디어를 기다리는 중
null 열 값을 빈 문자열로 렌더링하는 중입니다. 빈 문자열은 일부 데이터베이스가 그런 식으로 매핑하더라도 null과 다릅니다. 마찬가지로 null이 허용되는 정수 열은 빈 문자열로 렌더링됩니다. 이는 JSON의 유형 안전 요구 사항을 충족하지 못할 수 있습니다. –