【问题标题】:Getting a specific JSONObject with kotlin in a clean way以干净的方式使用 kotlin 获取特定的 JSONObject
【发布时间】:2020-03-19 19:29:36
【问题描述】:

有没有更简洁的方法来获取价值?我不是 Kotlin 专家,我似乎无法在网上找到很多内容

var options = request.getJSONObject("optionsObject");
var readingPosition = options.getJSONObject("readingPosition");
var selector = readingPosition.getJSONObject("selector");
var value = selector.getString("value");

json:

{
   "optionsObject":{
      "readingPosition":{
         "format":"application\/epub+zip",
         "selector":{
            "type":"FragmentSelector",
            "conformsTo":"http:\/\/www.idpf.org\/epub\/linking\/cfi\/epub-cfi.html",
            "value":"epubcfi(\/6\/2!\/0)"
         }
      },
      "readingProgress":0
   }
}

【问题讨论】:

    标签: android json kotlin


    【解决方案1】:

    如果你正在使用改造,只需创建一个类

    data class youcalssname(
     val yourJsonobjet:YourJsonobjectType,
     //like this
     val value:String,
     )
    

    轻松获取数据yourclassname.value更多检查this

    【讨论】:

    • idk 对我来说有点矫枉过正
    • 对于这种 json 响应,我认为您的代码很干净且不太复杂。
    • 我同意,但我仍然感到惊讶,没有更有效的方法
    • 如果你在很多 api 中都得到这种类型的响应,那么你可以创建一个 pojo 类或模型,然后获取并将数据设置到模型类中并获取它,但如果它看起来你只得到一次响应没关系,它干净且不那么复杂
    • 如果你得到一次响应没关系,但如果你在不同的 api 和不同的活动和片段中得到相同的响应,你必须重新编写所有代码来获取数据,但如果你使用模型,你只需传递模型并获得模型响应,无需调用 request.getJSONObject("optionsObject"); .你可以简单地将模型从一个活动传递到另一个完整的数据,它减少了代码的复杂性,如果从服务器更改 api 响应对象,你必须在每个地方进行更改,但是如果你使用模型,你只需要在模型中进行更改。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多