gpt4 book ai didi

json - 比较Scala中的json相等性

转载 作者:行者123 更新时间:2023-12-03 20:52:34 26 4
gpt4 key购买 nike

如何在Scala中比较两个json结构是否相同?

例如,如果我有:

{
resultCount: 1,
results: [
{
artistId: 331764459,
collectionId: 780609005
}
]
}




{
results: [
{
collectionId: 780609005,
artistId: 331764459
}
],
resultCount: 1
}


他们应该被认为是平等的

最佳答案

如果正确编写了json库,则您应该能够简单地执行json1 == json2。那对你不起作用吗?

这与spray-json一起使用,尽管我希望每个json库都一样:

import spray.json._
import DefaultJsonProtocol._
Welcome to Scala version 2.10.4 (OpenJDK 64-Bit Server VM, Java 1.7.0_51).
Type in expressions to have them evaluated.
Type :help for more information.

scala> val json1 = """{ "a": 1, "b": [ { "c":2, "d":3 } ] }""".parseJson
json1: spray.json.JsValue = {"a":1,"b":[{"c":2,"d":3}]}

scala> val json2 = """{ "b": [ { "d":3, "c":2 } ], "a": 1 }""".parseJson
json2: spray.json.JsValue = {"b":[{"d":3,"c":2}],"a":1}

scala> json1 == json2
res1: Boolean = true


Spray-json使用一个不变的scala Map来表示由解析产生的抽象语法树中的JSON对象,因此,正是 Map的相等语义使这一工作得以实现。

关于json - 比较Scala中的json相等性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23176303/

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