我正在尝试使用Specs2测试Json,但我总是得到一个解析错误。
也许是因为我使用了JObect?
val j: JObject = "hello" -> "world"
j must */("hello")
这是错误:
Search_fields
Could not parse:
JObject(List(JField(hello,JString(world))))
java.lang.Exception: Could not parse:
JObject(List(JField(hello,JString(world))))
at net.liftweb.echidnasearch.QuerySearchSpec$$anonfun$1$$anonfun$apply$124.apply(QuerySearchSpec.scala:496)
at net.liftweb.echidnasearch.QuerySearchSpec$$anonfun$1$$anonfun$apply$124.apply(QuerySearchSpec.scala:485)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
MatchQuery
感谢
答案 0 :(得分:1)
specs2 json匹配器为Matcher[String]
。我怀疑你所看到的是尝试解析由于specs2匹配器无法解析的Lift Json对象的.toString
表示。您应该匹配Lift Json对象的正确String表示。
答案 1 :(得分:0)
如果您的意思是编译错误,请检查所有导入,然后重试:
import net.liftweb.json.JsonDSL._
import net.liftweb.json._
val t:JObject = ("a" -> "b")
我在控制台中试过这个,它可以工作:
scala> val t:JObject = ("a" -> "b")
t: net.liftweb.json.JObject = JObject(List(JField(a,JString(b))))