如何从 kotlin 中的 json 获得“错误”或“成功”?

Posted

技术标签:

【中文标题】如何从 kotlin 中的 json 获得“错误”或“成功”?【英文标题】:How I can get "error" or "success" from json in kotlin? 【发布时间】:2020-04-03 06:44:53 【问题描述】:

我尝试在 kotlin 中制作 web android 应用程序,并且每天都知道一些事情,但是关于这个错误我没有找到解决方案。我使用 OkHTTP3 和 Json 我找到了 Klaxon。我如何仅从响应“成功”或“错误”中获得。 例如:如果我得到:


"error":
"code":4,
"text":"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u043d \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c!"


我需要检查它是“错误”还是“成功”。我试过```if (response.header("error") toast ("I got error") or

if (response.header("success") 
val i = Intent(this, SecondActivity::class.java).putExtra("token", response.header("session_token").toString)
startActivity(i)

我需要if () 吗?也许我可以通过其他方式检查成功? 感谢所有问题,也许您推荐其他用于 json 的库?

【问题讨论】:

为什么不用 OkHttp 的 onresponse 和 onerror 方法呢?您可能需要修改 api。请在这里查看***.com/questions/24246783/… @EmreAkcanI 我可以在 onResponse 中编码val i = Intent(this, SomeActivity::class.java).putExtra("token", response.header("session_token").toString startACtivity(i) 吗?如果我成功了,它会如何工作? 【参考方案1】:

我认为我找到了解决方案。我认为这很好,而且必须工作。

client.newCall(request).enqueue(object : Callback

            override fun onResponse(call: Call, response: Response) 

                startActivity(Intent(this@Login, NavigationMenu::class.java)
                    .putExtra("session_token", response
                        .header("session_token")
                        .toString()))
                toast(response.header("text").toString())
            

【讨论】:

以上是关于如何从 kotlin 中的 json 获得“错误”或“成功”?的主要内容,如果未能解决你的问题,请参考以下文章

如何纠正 android kotlin 发送格式错误的 JSON

从Python JSON迁移到Kotlin JVM JSON

(Kotlin 中的 Moshi)@Json 与 @field:Json

如何从kotlin中的类实例化对象

如何通过 Kotlin 中的 gson 访问嵌套 JSON 中的值?

bufferedReader() 在 Kotlin 中究竟是如何工作的?