android - 在 JSON 对象中解析 JSON 对象
问题描述
我想使用 Retrofit 解析 Json 对象。解析“电话”和“地址”的最佳方法是什么?谢谢你。
{
"name": "Miss Piggy",
"id": "13",
"companyName": "Muppets, Baby",
"isFavorite": false,
"smallImageURL": "https://s3.amazonaws.com/technical-challenge/v3/images/miss-piggy-small.jpg",
"largeImageURL": "https://s3.amazonaws.com/technical-challenge/v3/images/miss-piggy-large.jpg",
"emailAddress": "Miss.Piggy@muppetsbaby.com",
"birthdate": "1987-05-11",
"phone": {
"work": "602-225-9543",
"home": "602-225-9188",
"mobile": ""
},
"address": {
"street": "3530 E Washington St",
"city": "Phoenix",
"state": "AZ",
"country": "US",
"zipCode": "85034"
}
}
解决方案
您可以使用带有正确改造转换器的 JSON 解析库(例如Gson或Moshi )来创建用于解析嵌入对象的类(kotlin 中的数据类)。
kotlin 中的一个例子。
响应类
data class Response (
val name: String,
val id: String,
val companyName: String,
val isFavorite: Boolean,
val smallImageURL: String,
val largeImageURL: String,
val emailAddress: String,
val birthdate: String,
val phone: Phone,
val address: Address)
地址类
data class Address (
val street: String,
val city: String,
val state: String,
val country: String,
val zipCode: String )
电话班
data class Phone (
val work: String,
val home: String,
val mobile: String)
有关更多详细信息,请查看Google 的 Codelab示例
推荐阅读
- c# - 如何在 WPF 中的单击按钮上生成动态控件?
- c++ - 线性链接工厂和移动语义
- jsf - 不能使用primefaces xmlns
- apache-spark - 从运行 Spark 作业中删除 Worker 节点
- javascript - 如何使用 Jquery 或 Javascript 在 API 调用函数之外使用变量
- php - 如果加入日期已完成六个月,则从表中删除记录
- javascript - 日期范围选择器中的 JS 格式日期
- mysql - 谷歌云 LAMP 堆栈上的 MySQL 访问
- vba - VBA 正在跳过命名范围线
- leaflet - 将 DEM 转换为保持像素值的 PNG 切片?