Android JSON URL抓取
好吧,我正试图为我的Android设计团队创建一个应用程序,但我遇到了一个似乎无法解决的障碍 这是我的json文件,应用程序应该从中读取Android JSON URL抓取,android,json,Android,Json,好吧,我正试图为我的Android设计团队创建一个应用程序,但我遇到了一个似乎无法解决的障碍 这是我的json文件,应用程序应该从中读取 { "status": "ok", "posts": [ { "id": 1, "type": "post", "url": "https://play.google.com/store/apps/dev?id=4712980303859595180", "status": "publish",
{
"status": "ok",
"posts": [
{
"id": 1,
"type": "post",
"url": "https://play.google.com/store/apps/dev?id=4712980303859595180",
"status": "publish",
"title": "Google Developer Page",
"content": "<p>Here's a link to our Google Play Developer Page!</p>",
"date": "December 24 2016",
"attachments": [
{
"url": "http://technologx.com/android/ghostninja/header.png",
"mime_type": "image/png"
}
]
}
]
}
{
“状态”:“确定”,
“员额”:[
{
“id”:1,
“类型”:“职位”,
“url”:”https://play.google.com/store/apps/dev?id=4712980303859595180",
“状态”:“发布”,
“标题”:“谷歌开发者页面”,
“内容”:“这是我们的Google Play开发者页面的链接!”,
“日期”:“2016年12月24日”,
“附件”:[
{
“url”:”http://technologx.com/android/ghostninja/header.png",
“mime_类型”:“图像/png”
}
]
}
]
}
下面是日志:
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #4
Process: com.technologx.firebirddesigns, PID: 32228
java.lang.RuntimeException: An error occured while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:304)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
at java.util.concurrent.FutureTask.setException(FutureTask.java:222)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
at org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
at org.json.JSONTokener.nextValue(JSONTokener.java:94)
at org.json.JSONObject.<init>(JSONObject.java:156)
at org.json.JSONObject.<init>(JSONObject.java:173)
at com.technologx.firebirddesigns.Fragments.StoreFragment.getJSONFromUrl(StoreFragment.java:169)
at com.technologx.firebirddesigns.Fragments.StoreFragment$DownloadFilesTask.doInBackground(StoreFragment.java:128)
at com.technologx.firebirddesigns.Fragments.StoreFragment$DownloadFilesTask.doInBackground(StoreFragment.java:112)
at android.os.AsyncTask$2.call(AsyncTask.java:292)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
E/AndroidRuntime:致命异常:AsyncTask#4
流程:com.technologx.firebirddesigns,PID:32228
java.lang.RuntimeException:执行doInBackground()时出错
在android.os.AsyncTask$3.done处(AsyncTask.java:304)
位于java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:355)
位于java.util.concurrent.FutureTask.setException(FutureTask.java:222)
位于java.util.concurrent.FutureTask.run(FutureTask.java:242)
在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
运行(Thread.java:818)
原因:java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“int java.lang.String.length()”
位于org.json.JSONTokener.nextCleanInternal(JSONTokener.java:116)
位于org.json.JSONTokener.nextValue(JSONTokener.java:94)
位于org.json.JSONObject(JSONObject.java:156)
位于org.json.JSONObject(JSONObject.java:173)
在com.technologx.firebirddesigns.Fragments.StoreFragment.getJSONFromUrl(StoreFragment.java:169)上
在com.technologx.firebirddesigns.Fragments.StoreFragment$downloadfilesstask.doInBackground(StoreFragment.java:128)
在com.technologx.firebirddesigns.Fragments.StoreFragment$downloadfilesstask.doInBackground(StoreFragment.java:112)
在android.os.AsyncTask$2.call(AsyncTask.java:292)
位于java.util.concurrent.FutureTask.run(FutureTask.java:237)
在android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
运行(Thread.java:818)
我试过几个不同的主机使用json文件,比如现在它在jsonblob.com上,但它也不适用于该站点。当我打开应用程序或转到store选项卡(读取json文件的内容)时,它会不断崩溃。
显然,您在代码中描述JSON格式时犯了一个错误。或者,您可能会收到与预期完全不同的JSON。您是否尝试使用工具读取原始响应?我建议使用邮递员这是我在应用程序代码字符串url=“”;新建下载文件任务().execute(url);源代码在这里并不重要。首先检查原始响应是否正确。使用我不知道如何使用该应用程序,而且它不允许我导入json代码。我不想导入代码。这意味着“手动”点击网络,然后检查您收到的响应是否与您预期的相同。好的编程没有捷径