gpt4 book ai didi

Scala 从字符串中解压

转载 作者:行者123 更新时间:2023-12-04 23:51:16 27 4
gpt4 key购买 nike

我尝试了以下单元测试。

第一次测试testUnpickleJsonPickleFormat效果很好。它腌制一个字符串并取消腌制。
testUnpickleString{1,2}对字符串进行反序列化的测试。但它们根本不起作用。我不知道哪里有什么想我的。

import org.junit.Test

import scala.pickling._
import scala.pickling.json._

class PicklerTest {

@Test
def testUnpickleJsonPickleFormat {
val src = "elem 1"
val pckl = src.pickle
val res = pckl.unpickle[String]
println(src)
println(pckl.toString +"\n")
println(res)
}

@Test
def testUnpickleString1 {
val json = """JSONPickle({
| "tpe": "java.lang.String",
| "value": "elem 1"
| })""".stripMargin.trim
val pckl = JSONPickle(json.toString)
val res = pckl.unpickle[String]

}

@Test
def testUnpickleString2 {
val src = "elem 1"
val pckl = src.pickle
val pckl2 = JSONPickle(pckl.toString)
val res = pckl2.unpickle[String]
println(src)
println(pckl.toString +"\n")
println(res)
}
}

我不知道如何在 Scala Pickle 框架中使用 unpickle。

最佳答案

你应该使用

{
"tpe": "java.lang.String",
"value": "elem 1"
}

没有 JSONPickle(...) :
val json = """{
"tpe": "java.lang.String",
"value": "elem 1"
}"""

JSONPickle(json).unpickle[String]
// String = elem 1
JSONPickle({...})不是有效的 JSON .

您还应该使用 pckl.value而不是 pckl.toString获取 JSON没有 JSONPickle(...) :
val src = "elem 1"
val pckl = src.pickle
val pckl2 = JSONPickle(pckl.value)
pckl2.unpickle[String]
// String = elem 1

你也可以像这样使用模式匹配:
val src = "elem 2"
val pckl = src.pickle
val pckl2 = pckl match {
case JSONPickle(value) => JSONPickle(value)
}
pckl2.unpickle[String]
// String = elem 2

关于Scala 从字符串中解压,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21525624/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com