在尝试使用 Scala/Spray 的第一步时,我遇到了在 spray-json 中正确处理 unicode 的问题。
例如:á 在 json 中生成 \u00e1。生成的标头指示 UTF-8 以及正确的设置 auf -Dfile.encoding=UTF-8 ,它在 Scala 的 System.properties 中显示 UTF-8。
但我很惭愧地承认我不知道如何实现这一点,因为我没有直接处理 JsonPrinter。这是我所拥有的:
Json协议:
object PersonJsonProtocol extends DefaultJsonProtocol {
implicit object PersonJsonFormat extends RootJsonFormat[Person] {
def write(per: Person) = JsObject(
"name" -> JsString(per.name),
"surname" -> JsString(per.surname),
"addresses" -> JsArray(per.addresses.toList.map(_.toJson))
)
Person 类中的简单映射:
val simple = {
get[String]("person_code") ~
get[String]("name") ~
get[String]("surname") map {
case person_code~name~surname =>
new Person(person_code, name, surname, adressDao.findAll(person_code))
}
}
路线内的数据库调用:
ctx: RequestContext => ctx.complete(StatusCodes.OK, personDAO.findAll())
所以我的问题是,我如何覆盖 JsonPrinter 中的 printString 方法。我将不胜感激任何帮助。先感谢您!