Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java json解析错误_Java_Android_Json_Kotlin - Fatal编程技术网

Java json解析错误

Java json解析错误,java,android,json,kotlin,Java,Android,Json,Kotlin,将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

将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 } } 包io.github.taehoon02.dimibob 导入android.os.AsyncTask 导入org.json.JSONException 导入org.json.JSONObject 导入java.io.BufferedReader 导入java.io.IOException 导入java.io.InputStreamReader 导入java.net.HttpURLConnection 导入java.net.MalformedURLException 导入java.net.URL 导入java.text.simpleDataFormat 导入java.util* 类:AsyncTask(){ var data=“” var早餐=“” var午餐=“” var晚餐=“” var snack=“” 覆盖乐趣doInBackground(vararg参数:Void):Void{ 试一试{ val today:Calendar=Calendar.getInstance() val format=simpleDataFormat(“yyyyMMdd”).format(今日时间) val url=url(“https://api.dimigo.in/dimibobs/“+格式) val httpURLConnection=url.openConnection()作为httpURLConnection val inputStream=httpURLConnection.inputStream val bufferedReader=bufferedReader(InputStreamReader(inputStream)) 变量行:字符串?=“” while(行!=null){ line=bufferedReader.readLine() 数据+=行 } val jsonObject=jsonObject(数据) 早餐=jsonObject.get(“早餐”)作为字符串 午餐=jsonObject.get(“午餐”)作为字符串 晚餐=jsonObject.get(“晚餐”)作为字符串 snack=jsonObject.get(“snack”)作为字符串 }捕获(e:畸形异常){ e、 printStackTrace() }捕获(e:IOException){ e、 printStackTrace() }捕获(e:JSONException){ e、 printStackTrace() } 返回空 } }
因为我没有看到您的错误消息,但我认为您需要在从
inputStream

改变

while (line != null) {
  line = bufferedReader.readLine()
  data += line
}


通过这样做,您可以避免json字符串的空值。“不工作”的确切含义是什么?它似乎不是json解析。构建将正常,但应用程序将被终止。
while ((line = bufferedReader.readLine()) != null) {
  data += line
}