【问题标题】:upickle read from scalaJS - upickle.Invalid$Data: String (data: 1)从 scalaJS 读取的 upickle - upickle.Invalid$Data: String (data: 1)
【发布时间】:2016-08-21 02:51:04
【问题描述】:

来自 ScalaJS。

import upickle.default._
import scala.scalajs.concurrent.JSExecutionContext.Implicits.queue

case class Post(userId: Long, id: Long, title: String, body: String)

@JSExport
def posts() : Future[Seq[Post]] = {
  val txt = """[{
    "userId": 1,
    "id": 1,
    "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
    "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
  }]"""

  val p = read[Seq[Post]](txt)

  println(p)

  p

}

pp onFailure {
  case x => println(x)
}

println(x) 打印:upickle.Invalid$Data: String (data: 1)

如何让它发挥作用?

更新/同步于:https://github.com/lihaoyi/upickle-pprint/issues/154

【问题讨论】:

  • 如果没有实际操作就很难确定。您是否尝试在posts foreach 之前输入 println?你确定posts 不为空吗?
  • 来看看数据吧!打开浏览器工具
  • 不需要。我都放在这里了。查看更新的问题。

标签: scala scala.js upickle


【解决方案1】:

嗯..

"uPickle 将 Long 序列化为 "1" 以避免 Scala.js 中大量数字的损坏/截断。如果他们来 向下作为 JSON 数字,您需要将它们键入为 Ints 或 Doubles"

【讨论】:

  • 其实这句话出自哪里?我刚遇到同样的问题,只是想知道这个信息的来源:)
猜你喜欢
  • 2019-08-24
  • 1970-01-01
  • 2015-04-22
  • 2012-06-14
  • 1970-01-01
  • 2013-10-26
  • 1970-01-01
  • 2012-03-31
  • 2019-07-27
相关资源
最近更新 更多