如何在 Kotlin Android 中将字符串转换为 JSON 对象 [重复]

Posted

技术标签:

【中文标题】如何在 Kotlin Android 中将字符串转换为 JSON 对象 [重复]【英文标题】:How to convert String to JSON Object in Kotlin Android [duplicate] 【发布时间】:2021-10-10 03:19:32 【问题描述】:

我需要帮助来转换 JSON 对象中的字符串。

这是我从 WebView 得到的响应

 webView.evaluatejavascript(
                    "document.getElementById('formio-submitted-data').textContent"
            )  value ->

回应是

  value = ""\"data\":\"plantName\":\"Bhanu\",\"address\":\"Abcd\",\"totalCapacity\":25,\"isValid\":true""

我得到的响应是一个字符串。我必须将其转换为 JSON。 我怎样才能做到这一点?

【问题讨论】:

这对bezkoder.com/kotlin-parse-json-gson有帮助吗? 我的 JSON 包含 \ 我必须将值转换为 JSON 对象并转发它。我不知道如何实现它。 你能提供有`\`的实际例子吗? 是这样的。 ""\"data\":\"FIRSTFIELD\":\"1\",\"FIRSTFIELD2\":\"2"" 这是我得到的 JSON 可以将 \" 替换为单引号,然后尝试使用相同的函数 【参考方案1】:

试试这个

val jsonParser = JsonParser()
val jsonObject = jsonParser.parse("your jsonString with backslash").asJsonObject

【讨论】:

我在 val resp 之前这样做了: JsonObject = JsonParser().parse(value).asJsonObject val jsonObject = JsonObject() 。但是我的应用程序崩溃了,它给了我错误 A/chromium: [FATAL:jni_android.cc(249)] Please include Java exception stack in crash report A/libc: Fatal signal 5 (SIGTRAP), code -6 (SI_TKILL) in tid 4443 只是为了缩小问题的范围,您可以尝试不使用\。我的意思是手动删除它们,看看你是否仍然得到这个错误。只是为了找出这个例外是因为 \ 我正在尝试手动删除 \ 但此 value.replace("//","") 不起作用。或者我应该一个一个地迭代。 Kotlin 没有 replaceAll 功能【参考方案2】:

我有办法了。

问题出在我的 webview 脚本中。

我做的是

doneButton.setOnClickListener
            var view=it
            webView.evaluateJavascript(
                    "JSON.parse(document.getElementById('formio-submitted-data').textContent)"
            )  value ->
                if(value.length!=2)

                    val resp: JsonObject = JsonParser().parse(value).asJsonObject
                    val jsonObject = JsonObject()
                    jsonObject.add("data", resp)

我已经更改了 evaluateJavaScript 中的代码。

【讨论】:

以上是关于如何在 Kotlin Android 中将字符串转换为 JSON 对象 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 kotlin 在 android studio 中将按钮与网站链接

在 Kotlin Android 中将值传递给函数时进行编译时间检查

如何在 Kotlin 中将 listView 转换为 RecyclerView

Android工程java项目如何转kotlin

如何在 Kotlin 中将字符串数组 JSON 转换为 ArrayList?

如何在 Kotlin 中将数据类转换为 ByteBuffer?