【问题标题】:Retrofit2 and Moshi: Send JSON without nested objectsRetrofit2 和 Moshi:发送没有嵌套对象的 JSON
【发布时间】:2020-03-07 02:15:25
【问题描述】:

在我的代码中,我有一个数据类,它存储一些信息以作为 json 主体传递给 web 服务

data class MyDataClass(
    var booleanField : Boolean = true,
    var stringField : String = "",
    var aDataField : ADataClass = ADataClass()
)

其中 ADataClass 是我将在我的代码中重用的类,例如

data class ADataClass(
    var aDataString : String = "",
    var aDataAnotherString : String = ""
)

现在,当我调用我的网络服务时,我传递了一个类似的 json

{
     "booleanField" : true,
     "stringField" : "someValue",
     "aDataField" : {
         "aDataString" : "aString",
         "aDataAnotherString" : "anotherString"
     }
}

但是接受的json必须像

 {
     "booleanField" : true,
     "stringField" : "someValue",
     "aDataString" : "aString",
     "aDataAnotherString" : "anotherString"
}

那么,有一种方法(比如一些注释)可以避免在解析时创建 aDataField 元素,并将其内容放入 json 中?

【问题讨论】:

    标签: android json retrofit2 moshi


    【解决方案1】:

    不,你应该手动设置它

    MyDataClass 将多了一个变量 aDataAnotherString 和它的 getter 和 setter 方法,然后插入它

    MyDataClass myData = response;
    if(myData != null && myData.getADataClass() != null){
        myData.setaDataAnotherString(myData.getADataClass().getaDataAnotherString());
    }
    

    【讨论】:

      猜你喜欢
      • 2023-04-01
      • 1970-01-01
      • 2019-03-04
      • 2017-06-23
      • 2021-02-03
      • 2014-12-29
      • 1970-01-01
      • 2015-08-01
      • 2019-03-27
      相关资源
      最近更新 更多