【问题标题】:Break if value exists in JSON, but if value is null then return (kotlin)如果 JSON 中存在值,则中断,但如果值为 null,则返回(kotlin)
【发布时间】:2021-04-04 00:32:07
【问题描述】:

我正在尝试学习 kotlin,并且遇到了一个名为 klaxon 的用于解析 JSON 的库。如果我从输入中得到的值为空,我希望程序不断重复。否则,如果我输入的密钥确实存在,我希望程序中断。我的程序没有按我的预期工作,但如果我删除 break,即使值为 null,程序也会永远循环。

这是我的代码:

import java.net.*
import com.beust.klaxon.*
import java.util.*
import kotlin.text.*
 
fun webRequest(url: String) {
    val uri = URL(url).readText()
    val parser: Parser = Parser.default()
    val stringBuilder: StringBuilder = StringBuilder(uri)
    val json: JsonObject = parser.parse(stringBuilder) as JsonObject
 
    println(json)
    val input: String? = readLine()
    do {
        println(json)
        if (input == null) {
            println("value doesn't exist")
        } else {
            println(json.string(input))
            break
        }
    } while (true)
}
 
fun main() {
    webRequest("https://api.github.com")
}

【问题讨论】:

    标签: json loops kotlin klaxon


    【解决方案1】:

    您只读取一次输入。 您应该在循环内执行 readline() 以获得所需的行为:

    var input: String? = readLine()
    while (input.isNullOrEmpty()) {
        println("value doesn't exist")
        input = readLine()
    }
    println(json.string(input))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-15
      • 2023-03-13
      • 2021-04-29
      • 2017-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多