用 json4 秒迭代 json
iterating over a json with json4s
我有 json,其结构如下:
{
"searchResults": {
"searchCriteria": {
"location": {
"originalLocation": null
},
"startAndEndDate": {
"start": "2016-10-06T00:00:00",
"end": "2016-10-09T00:00:00"
},
"solution": [{
"resultID": "O1MDc1MD",
"selected": false,
"charges": {
"localCurrencyCode": "USD",
"averagePricePerNight": 153
},
"starRating": 3.5
},
{
"resultID": "0MDc1MD",
"selected": false,
"charges": {
"localCurrencyCode": "USD",
"averagePricePerNight": 153
},
"starRating": 3.5
}
]
}
}
}
我有一个案例 class 比如:
case class ResponseModel(
//localCurrencyCode: Option[String],
averagePricePerNight: Option[Int],
starRating: Option[Int])
我想提取 averagePricePerNight 和 starRating 的值,return 它在一个列表中。
我无法获得包含 starRating 和 averagePricePerNight 的列表,因为在解决方案数组中我还有一组费用,所以我没有获得列表。
我用过:
val messagesIds = (json \ "solution") \ "starRating"
println(messagesIds.values)
Output: List(3.5, 3.5, 3.0)
预期输出:
List(ResponseModel(5.0,900), ResponseModel(4.5,100), ResponseModel(4.5,1000))
它给了我一个单独的 StarRatings 列表。我怎样才能将两者结合起来,让我知道另一个图书馆是否可以轻松做到这一点。
我会选择
case class Charges(localCurrencyCode: String, averagePricePerNight: Int)
case class Solution(resultID: String, selected: Boolean, charges: Charges, starRating: Double)
val parsed = (parse(json) \ "solution").extract[List[Solution]]
val result = parsed.map(x => ResponseModel(Some(x.charges.averagePricePerNight), Some(x.starRating)))
注 1:starRating
似乎是 Double
而不是 Int
注意 2:您的 ResponseModel
使用 Option
s...但您的预期似乎没有。
我有 json,其结构如下:
{
"searchResults": {
"searchCriteria": {
"location": {
"originalLocation": null
},
"startAndEndDate": {
"start": "2016-10-06T00:00:00",
"end": "2016-10-09T00:00:00"
},
"solution": [{
"resultID": "O1MDc1MD",
"selected": false,
"charges": {
"localCurrencyCode": "USD",
"averagePricePerNight": 153
},
"starRating": 3.5
},
{
"resultID": "0MDc1MD",
"selected": false,
"charges": {
"localCurrencyCode": "USD",
"averagePricePerNight": 153
},
"starRating": 3.5
}
]
}
}
}
我有一个案例 class 比如:
case class ResponseModel(
//localCurrencyCode: Option[String],
averagePricePerNight: Option[Int],
starRating: Option[Int])
我想提取 averagePricePerNight 和 starRating 的值,return 它在一个列表中。
我无法获得包含 starRating 和 averagePricePerNight 的列表,因为在解决方案数组中我还有一组费用,所以我没有获得列表。
我用过:
val messagesIds = (json \ "solution") \ "starRating"
println(messagesIds.values)
Output: List(3.5, 3.5, 3.0)
预期输出:
List(ResponseModel(5.0,900), ResponseModel(4.5,100), ResponseModel(4.5,1000))
它给了我一个单独的 StarRatings 列表。我怎样才能将两者结合起来,让我知道另一个图书馆是否可以轻松做到这一点。
我会选择
case class Charges(localCurrencyCode: String, averagePricePerNight: Int)
case class Solution(resultID: String, selected: Boolean, charges: Charges, starRating: Double)
val parsed = (parse(json) \ "solution").extract[List[Solution]]
val result = parsed.map(x => ResponseModel(Some(x.charges.averagePricePerNight), Some(x.starRating)))
注 1:starRating
似乎是 Double
而不是 Int
注意 2:您的 ResponseModel
使用 Option
s...但您的预期似乎没有。