【发布时间】:2015-02-26 09:05:58
【问题描述】:
我正在我的应用程序中使用 Retrofit,它可以很好地管理 API 调用,并根据我的需要支持 GET 和 PATCH。
鉴于以下 JSON:
"fruit_set": [
{
"id": 2,
"fruit": {
"id": 1,
"name": "Apple",
"desc": ""
},
"source": 2,
"inventory": 8.0
},
{
"id": 6,
"fruit": {
"id": 2,
"name": "Mango",
"desc": "delicious"
},
"source": 2,
"inventory": 15.0
}]
暂时忽略名字。
我已经为 FruitSet 和 Fruit 设置了一个带有所需 getter/setter 的 PoJo。 FruitSet.Fruit 被定义为 List 并通过 GET 调用很好地填充。我的问题在于 PATCH。
在这种情况下,Fruit 是参考数据,因此我只需要在将 Fruit.id 分配给我的 FruitSet PoJo 时插入它。
我能否指示 Retrofit 不需要将 Fruit 写入数据库表,只需将 Fruit.id 写入数据库表。我希望 Retrofit 足够聪明地做到这一点?
基本上我在 PATCH 时想要这个 JSON 结构:
"fruit_set": [
{
"id": 2,
"fruit": 1,
"source": 2,
"inventory": 8.0
},
{
"id": 6,
"fruit": 2,
"source": 2,
"inventory": 15.0
}]
有什么想法吗?
【问题讨论】:
-
你可以通过解析获取任何你想要的东西。告诉我你正在解析的代码。
-
提取没问题,我可以检索数据没有问题。当我想 PATCH 一个对象时,就会出现我发现的问题。 (我已经编辑了我的问题以说明我想要修补的 JSON)
-
Retrofit 不会做任何这些。您必须发出一个发布请求,并在该请求中以您想要的方式发送数据。
-
它会在与 OkHttp 库一起使用时执行 PATCH,因此我可以毫无问题地执行 PATCH。