我有一个json字符串,我想在scala中使用JsonPath从这个json中提取一个参数。鉴于Json:
{
"message_version":"2.0",
"message":"1.0",
"message_metadata":{
\"event_type\":\"MerchantRegistrationFraudEvaluation\",
\"event_date\":\"1513665186657\"
}
}
当我尝试使用以下代码提取" event_type"从这个json字符串,它抛出一个异常:
val eventType = JsonPath.read[String](jsonString, "$.message_metadata.event_type")
例外:
com.jayway.jsonpath.PathNotFoundException: Expected to find an object with property ['event_type'] in path $['message_metadata'] but found 'java.lang.String'. This is not a json object according to the JsonProvider: 'com.jayway.jsonpath.spi.json.JsonSmartJsonProvider'
但是如果我使用两个单独的语句,一个首先提取message_metadata,然后另一个提取event_type,如下所示,它可以正常工作:
val eventMetaData = JsonPath.read[String](message, "$.message_metadata") val eventType = JsonPath.read[String](eventMetaData, "$.event_type") eventType // MerchantRegistrationFraudEvaluation.
有人可以帮忙将event_type放在一行吗?