私はOpensignal APIを試していて、Jackson 2.0を使用して結果をシリアル化しようとしているときに壁にぶつかっています。 networkRankは配列であり得るか、または他の属性私はこのString networkRank
に保存し、それが文字列だ場合のように、ジャクソンは、適切にJSONをシリアル化するために設定することができますどのように文字列同じ変数を持つvaringデータ型を使用してJSONをシリアライズ
することができ、これらは結果であるList <NetworkRank> = new ArrayList<NetworkRank>()
に保存(以下networkRankをチェックしてください)
{
"apiVersion": "2",
"latitude": "14.55669",
"longitude": "121.370119",
"distance": "10",
"network_type": "10",
"perMinuteCurrent": 0,
"perMinuteLimit": 10,
"perMonthCurrent": 7,
"perMonthLimit": 2000,
"networkRank": "No results for this area"
}
と
{
"apiVersion": "2",
"latitude": "14.55669",
"longitude": "121.370119",
"distance": "10",
"network_type": "10",
"perMinuteCurrent": 0,
"perMinuteLimit": 10,
"perMonthCurrent": 7,
"perMonthLimit": 2000,
"networkRank": [
{
"networkName": "T-Mobile",
"networkId": "310260",
"type3G": {
"networkName": "T-Mobile",
"networkId": "310260",
"networkType": "3",
"averageRssiAsu": "10.934899",
"averageRssiDb": "-91.130203",
"sampleSizeRSSI": "437532",
"downloadSpeed": "4532.8305",
"uploadSpeed": "1124.9649",
"pingTime": "148.8205",
"reliability": "94.5944170771741"
},
"type4G": {
"networkName": "EE",
"networkId": "23430",
"networkType": "4",
"averageRsrpAsu": "33.865632",
"averageRsrpDb": "-106.134368",
"sampleSizeRSRP": "284041",
"downloadSpeed": "9851.1000",
"uploadSpeed": "4377.3200",
"pingTime": "87.0000",
"reliability": "96.2113095238094"
}
}
]
}
シリアライズルックのクラスはどのようなものですか? 'network''の' Object'フィールドは 'String'か' List 'のどちらかになりますか? –
Wilson
こんにちはウィルソン、ネットワークサービスは、ネットワーク信号が存在する場合はネットワークランクの配列になり、それ以外の場合は文字列として検出されたネットワーク信号は送信されません。したがって、同じフィールドは文字列または配列になります。 –
JSONレスポンスをクラスオブジェクトに逆シリアル化する必要がありますか?その場合、あなたはどのような非直列化のためのクラスですか?デシリアライズ後に文字列や配列を格納するフィールドが同じであれば、どんなクラス構造でも構いませんか? – Wilson