斯卡拉从字符串unpickling
发布时间:2020-12-16 18:04:42 所属栏目:安全 来源:网络整理
导读:我尝试了以下单元测试. 首次测试testUnpickleJsonPickleFormat效果很好.它腌制一个字符串并取出泡菜. testUnpickleString {1,2}测试以反序列化String.但它们根本不起作用.我不知道哪里有什么想念我. import org.junit.Testimport scala.pickling._import sca
我尝试了以下单元测试.
首次测试testUnpickleJsonPickleFormat效果很好.它腌制一个字符串并取出泡菜. testUnpickleString {1,2}测试以反序列化String.但它们根本不起作用.我不知道哪里有什么想念我. 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来获取没有JSONPickle(…)的JSON: 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |