将Java代码更改为Kotlin代码 . 这是Kotlin,我不认为过去工作的json解析 . 它在Java中运行 . 那么,有什么解决方案呢?
package io.github.taehoon02.dimibob
import android.os.AsyncTask
import org.json.JSONException
import org.json.JSONObject
import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
import java.net.HttpURLConnection
import java.net.MalformedURLException
import java.net.URL
import java.text.SimpleDateFormat
import java.util.*
class meals : AsyncTask() {
var data = ""
var breakfast = ""
var lunch = ""
var dinner = ""
var snack = ""
override fun doInBackground(vararg params: Void): Void? {
try {
val today : Calendar = Calendar.getInstance()
val format = SimpleDateFormat("yyyyMMdd").format(today.time)
val url = URL("https://api.dimigo.in/dimibobs/" + format)
val httpURLConnection = url.openConnection() as HttpURLConnection
val inputStream = httpURLConnection.inputStream
val bufferedReader = BufferedReader(InputStreamReader(inputStream))
var line: String? = ""
while (line != null) {
line = bufferedReader.readLine()
data += line
}
val jsonObject = JSONObject(data)
breakfast = jsonObject.get("breakfast") as String
lunch = jsonObject.get("lunch") as String
dinner = jsonObject.get("dinner") as String
snack = jsonObject.get("snack") as String
} catch (e: MalformedURLException) {
e.printStackTrace()
} catch (e: IOException) {
e.printStackTrace()
} catch (e: JSONException) {
e.printStackTrace()
}
return null
}
}
1 回答
由于我没有看到您的错误消息,但我认为您需要在从
inputStream
读取数据时更改代码更改
至
通过这样做,您可以避免json字符串的空值