誰かが同様の質問 をしました JSON 内に埋め込まれた JSON をエンコードする方法
今、私の受信jsonは次のようになります
{
"items": [
{
"context": {
"rdw": {
"queryId": "12345",
"filterId": "54321"
}
},
"startTimestamp": "2012-09-08T22:47:31-07:00",
"endTimestamp": "2012-09-08T22:47:31-07:00",
"mrn": "12345",
"units": [
"1",
"2",
"3"
],
"types": [
"1",
"2",
"3"
],
"minDurationSeconds": "5"
}
]
}
Context オブジェクトの一部は可変であり、ソース システムはそれに応じて送信します。そのため、Context フィールドについては、Json 全体を
{
"rdw": {
"queryId": "12345",
"filterId": "54321"
}
}
文字列として
後の使用例では、オブジェクトにも解析する必要があります。
com.fasterxml.jackson.databind.ObjectMapper.ObjectMapper を使用して解析するためのコードを追加する
WaveformQuery waveformQuery = new ObjectMapper().readValue(
waveformQueryStr, WaveformQuery.class);
これはエラーをスローします
Can not deserialize instance of java.lang.String out of START_OBJECT token
at [Source: java.io.StringReader@66e2cf6e; line: 4, column: 7] (through reference chain: WaveformQuery["items"]->Items["context"])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:164)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:575)