【发布时间】:2015-08-31 07:57:47
【问题描述】:
这是两个示例 json 数据。
模式1
{
"data_type": "stats",
"data": [
{
"id" : "123abc",
"promoted_tweet_timeline_card_engagements": [ 0 ],
"promoted_account_follow_rate": [ 0 ],
"conversion_sign_ups": [ 0 ] // <- sometime not passed this field
}
]
}
而且,有时没有通过字段
模式2
{
"data_type": "stats",
"data": [
{
"id" : "123abc",
"promoted_tweet_timeline_card_engagements": [ 0 ],
"promoted_account_follow_rate": [ 0 ]
}
]
}
我想转成这个案例类。
case class Campaign(
id: String,
promoted_tweet_timeline_card_engagements: List[Any],
promoted_account_follow_rate: List[Any],
conversion_sign_ups: Option[List[Any]],
)
这是主要代码
for {
JObject(data) <- json \\ "data"
JField("id", JString(id)) <- data
JField("promoted_tweet_timeline_card_engagements", JArray(promoted_tweet_timeline_card_engagements)) <- data
JField("promoted_account_follow_rate", JArray(promoted_account_follow_rate)) <- data
JField("conversion_sign_ups", JArray(conversion_sign_ups)) <- data // It can not be handled correctly when field does not exists
} yield Campaign(
id = id,
promoted_tweet_timeline_card_engagements = promoted_tweet_timeline_card_engagements,
promoted_account_follow_rate = promoted_account_follow_rate,
conversion_sign_ups = Option(conversion_sign_ups)
)
conversion_sign_ups字段在pattern2数据时无法正确处理。
我想在一个案例类中处理这个问题。 我该怎么做??
【问题讨论】: