在 kotlin REPL 和暂存文件中使用 json 类时出错
Posted
技术标签:
【中文标题】在 kotlin REPL 和暂存文件中使用 json 类时出错【英文标题】:Error with using json classes from within kotlin REPL and scratch files 【发布时间】:2020-05-15 22:11:47 【问题描述】:我正在开发一个需要处理从 Web API 检索到的 json 数据的 android 项目。在项目中,我成功地使用了JSONObject
和JSONArray
(包org.json
)类,没有任何问题。
每次我想尝试一些 json 处理时总是运行编译、运行和导航应用程序很烦人,所以我决定尝试一下暂存文件。
我的暂存文件如下所示:
import org.json.JSONObject
val jsonObject = JSONObject(
"""
"data": [
...
]
"""
)
println(jsonObject["data"])
当我尝试运行该文件时,我收到一条错误消息,指出导入不成功:
error: unresolved reference: json (scratch.kts:1:12)
error: unresolved reference: JSONObject (scratch.kts:3:18)
scratch.kts:1:12: error: unresolved reference: json
import org.json.JSONObject
^
scratch.kts:3:18: error: unresolved reference: JSONObject
val jsonObject = JSONObject(
^
Process finished with exit code 1
据我了解,这是因为 org.json
类现在是 Android 的一部分,并且 Android 框架不能从草稿文件中获得。但是我该如何解决呢?我不应该能够以某种方式将org.json
包从Android 框架中导入吗?
【问题讨论】:
你发现了吗?当我尝试在暂存文件中使用协程时,我遇到了同样的问题 【参考方案1】:为了在您的临时文件中使用import android.*
,您必须连接到您的 Android 模块的类路径(参见下面的示例屏幕截图)。无论如何,这带来了一个缺点,即您必须拥有一个可运行的项目。
【讨论】:
太好了,非常感谢!我从来没有注意到那个下拉菜单。以上是关于在 kotlin REPL 和暂存文件中使用 json 类时出错的主要内容,如果未能解决你的问题,请参考以下文章
用于 localhost 和暂存 url 的 Cors 过滤器
kotlin中ByteArray与基本类型的转换工具(位运算)