使用异步解析 Json url

2023-12-10

运行此代码时出现异常。我想解析 url,它是一个 json 对象数组:

package com.example.compsci_734t;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;

public class UoaCompsciActivity extends Activity {

    private static String url = " http://redsox.tcs.auckland.ac.nz/734A/CSService.svc/courses";
    //URL requestUrl = new URL(url);
    JSONArray courses = null;
    private static final String TAG_COURSES = "Courses";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_uoa_compsci);
        new MyTask().execute();
    }


    private class MyTask extends AsyncTask<URL, Void, JSONObject> {

        @Override
        protected JSONObject doInBackground(URL... urls) {
            loadJSON(url);
            return null;
        }

        protected void onPostExecute(JSONObject json) {

            try {
                courses = json.getJSONArray(TAG_COURSES);

                // looping through all courses
                for (int i = 0; i < courses.length(); i++) {
                    JSONObject c = courses.getJSONObject(i);

                    // Storing each json item in variable
                    String course_id = c.getString("courseField:");
                    String course_name = c.getString("titleField:");
                    String course_semester = c.getString("semesterField:");



                    Log.v("--", "Course: \n" + " " + course_id + " " + course_name
                            + " " + course_semester);
                }

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }
    }


    public JSONObject loadJSON(String url) {
        // Creating JSON Parser instance
        JSONParser jParser = new JSONParser();

        // getting JSON string from URL
         JSONObject json = jParser.getJSONFromUrl(url);

        return json;
    }

}

这也是我的 logcat:

05-13 20:29:05.118: I/dalvikvm(770): threadid=3: reacting to signal 3
05-13 20:29:05.128: I/dalvikvm(770): Wrote stack traces to '/data/anr/traces.txt'
05-13 20:29:05.418: D/gralloc_goldfish(770): Emulator without GPU emulation detected.
05-13 20:31:46.128: I/dalvikvm(842): threadid=3: reacting to signal 3
05-13 20:31:46.218: I/dalvikvm(842): Wrote stack traces to '/data/anr/traces.txt'
05-13 20:31:46.408: D/gralloc_goldfish(842): Emulator without GPU emulation detected.
05-13 22:06:17.298: I/dalvikvm(918): threadid=3: reacting to signal 3
05-13 22:06:17.389: I/dalvikvm(918): Wrote stack traces to '/data/anr/traces.txt'
05-13 22:06:17.549: D/gralloc_goldfish(918): Emulator without GPU emulation detected.
05-13 22:06:17.829: W/dalvikvm(918): threadid=11: thread exiting with uncaught exception (group=0x409c01f8)
05-13 22:06:17.839: E/AndroidRuntime(918): FATAL EXCEPTION: AsyncTask #1
05-13 22:06:17.839: E/AndroidRuntime(918): java.lang.RuntimeException: An error occured while executing doInBackground()
05-13 22:06:17.839: E/AndroidRuntime(918):  at android.os.AsyncTask$3.done(AsyncTask.java:278)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-13 22:06:17.839: E/AndroidRuntime(918):  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.lang.Thread.run(Thread.java:856)
05-13 22:06:17.839: E/AndroidRuntime(918): Caused by: java.lang.IllegalArgumentException: Illegal character in scheme at index 0:  http://redsox.tcs.auckland.ac.nz/734A/CSService.svc/courses
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.net.URI.create(URI.java:727)
05-13 22:06:17.839: E/AndroidRuntime(918):  at org.apache.http.client.methods.HttpPost.<init>(HttpPost.java:79)
05-13 22:06:17.839: E/AndroidRuntime(918):  at com.example.compsci_734t.JSONParser.getJSONFromUrl(JSONParser.java:36)
05-13 22:06:17.839: E/AndroidRuntime(918):  at com.example.compsci_734t.UoaCompsciActivity.loadJSON(UoaCompsciActivity.java:78)
05-13 22:06:17.839: E/AndroidRuntime(918):  at com.example.compsci_734t.UoaCompsciActivity$MyTask.doInBackground(UoaCompsciActivity.java:42)
05-13 22:06:17.839: E/AndroidRuntime(918):  at com.example.compsci_734t.UoaCompsciActivity$MyTask.doInBackground(UoaCompsciActivity.java:1)
05-13 22:06:17.839: E/AndroidRuntime(918):  at android.os.AsyncTask$2.call(AsyncTask.java:264)
05-13 22:06:17.839: E/AndroidRuntime(918):  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-13 22:06:17.839: E/AndroidRuntime(918):  ... 5 more

更新的日志猫:

05-13 22:15:01.438: I/dalvikvm(968): threadid=3: reacting to signal 3
05-13 22:15:01.598: I/dalvikvm(968): Wrote stack traces to '/data/anr/traces.txt'
05-13 22:15:01.718: D/gralloc_goldfish(968): Emulator without GPU emulation detected.
05-13 22:15:02.288: E/JSON Parser(968): Error parsing data org.json.JSONException: Value <?xml of type java.lang.String cannot be converted to JSONObject
05-13 22:15:02.288: D/AndroidRuntime(968): Shutting down VM
05-13 22:15:02.288: W/dalvikvm(968): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
05-13 22:15:02.298: E/AndroidRuntime(968): FATAL EXCEPTION: main
05-13 22:15:02.298: E/AndroidRuntime(968): java.lang.NullPointerException
05-13 22:15:02.298: E/AndroidRuntime(968):  at com.example.compsci_734t.UoaCompsciActivity$MyTask.onPostExecute(UoaCompsciActivity.java:49)
05-13 22:15:02.298: E/AndroidRuntime(968):  at com.example.compsci_734t.UoaCompsciActivity$MyTask.onPostExecute(UoaCompsciActivity.java:1)
05-13 22:15:02.298: E/AndroidRuntime(968):  at android.os.AsyncTask.finish(AsyncTask.java:602)
05-13 22:15:02.298: E/AndroidRuntime(968):  at android.os.AsyncTask.access$600(AsyncTask.java:156)
05-13 22:15:02.298: E/AndroidRuntime(968):  at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:615)
05-13 22:15:02.298: E/AndroidRuntime(968):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 22:15:02.298: E/AndroidRuntime(968):  at android.os.Looper.loop(Looper.java:137)
05-13 22:15:02.298: E/AndroidRuntime(968):  at android.app.ActivityThread.main(ActivityThread.java:4424)
05-13 22:15:02.298: E/AndroidRuntime(968):  at java.lang.reflect.Method.invokeNative(Native Method)
05-13 22:15:02.298: E/AndroidRuntime(968):  at java.lang.reflect.Method.invoke(Method.java:511)
05-13 22:15:02.298: E/AndroidRuntime(968):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-13 22:15:02.298: E/AndroidRuntime(968):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-13 22:15:02.298: E/AndroidRuntime(968):  at dalvik.system.NativeStart.main(Native Method)
05-13 22:15:02.889: I/dalvikvm(968): threadid=3: reacting to signal 3
05-13 22:15:02.919: I/dalvikvm(968): Wrote stack traces to '/data/anr/traces.txt'

完整日志猫: 05-13 22:15:01.438: I/dalvikvm(968): threadid=3: 对信号 3 做出反应 05-13 22:15:01.598:I/dalvikvm(968):将堆栈跟踪写入“/data/anr/traces.txt” 05-13 22:15:01.718:D/gralloc_goldfish(968):检测到没有 GPU 模拟的模拟器。 05-13 22:15:02.288:E/JSON 解析器(968):解析数据 org.json.JSONException 时出错:值 


该错误本身是可以解释的:

java.lang.IllegalArgumentException:方案中存在非法字符index 0

您需要删除 URL 中的开头空格字符:

private static String url = "http://redsox.tcs.auckland.ac.nz/734A/CSService.svc/courses";

Update:

更新问题后,现在问题出现在这一行:

courses = json.getJSONArray(TAG_COURSES);

因为你还没有初始化或设置值courses这就是为什么它给予NullPointerException error.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用异步解析 Json url 的相关文章

  • 围绕二维坐标系中的特定点缩放

    Below is an image my coordinate system 我想做的是 我想开始围绕画布中的特定点进行缩放 缩放工作正常 但我的问题是我不知道如何计算缩放时移动画布的量 请注意 我我没有使用canvas scale 我只是
  • 无法实例化接收器 com.parse.GcmBroadcastReceiver

    我正在编写一个使用 GCM 通知和解析推送的离子应用程序 这个应用程序正在使用这些插件 com ionic keyboard 1 0 3 Keyboard com phonegap plugins PushPlugin 2 4 0 Push
  • Android 滚动视图无法以编程方式创建。

    我想在我的应用程序中使用滚动视图 我尝试将文本视图添加到滚动视图中 但除了滚动视图的背景颜色之外 我看不到任何渲染的内容 我是这样做的 public class MyView extends ViewGroup ScrollView myS
  • Android,如何限制TextView的宽度(并在文本末尾添加三个点)?

    我有一个TextView我想限制它的字符 实际上 我可以做到这一点 但我正在寻找的是如何在字符串末尾添加三个点 这表明文本已经继续 这是我的 XML 但没有点 尽管它限制了我的文本
  • Python:json_normalize pandas 系列给出 TypeError

    我在 pandas 系列中有数万行像这样的 json 片段df json IDs lotId 1 Id 123456 date 2009 04 17 bidsCount 2 IDs lotId 2 Id 123456 date 2009 0
  • 在 doInBackground AsyncTask Android 中传递更多值

    如何传递更多的值doInBackground My AsyncTask看起来像这样 private class DownloadFile extends AsyncTask
  • json 具有自动完成功能?

    我在用Jquery 自动完成 http docs jquery com Plugins Autocomplete autocomplete url or dataoptions 我也在使用 formatItem 我希望输出是
  • 在 Marshmallow 中获取蓝牙本地 mac 地址

    在 Marshmallow 之前 我的应用程序将通过以下方式获取其设备 MAC 地址BluetoothAdapter getDefaultAdapter getAddress 现在 随着 Marshmallow Android 的回归02
  • Android 中的垂直和水平滚动视图

    我真的很累了寻找垂直和水平滚动视图的解决方案 我读到框架中没有任何视图 布局实现此功能 但我需要这样的东西 我需要在其他布局中定义一个布局 子布局必须实现垂直 水平滚动才能移动 最初实现了一个逐像素移动布局的代码 但我认为这不是正确的方法
  • Android NDK C++“wstring”支持

    我有用 C 编写的源代码 lib 现在我想在 Android NDK 项目 NDK 6 中编译并使用相同的源代码 lib 我能够编译大多数 C 文件 除了基于 std wstring 的功能 在 Application mk 中 当我指定时
  • eclipse - 在android虚拟设备中卡住中文

    当我在 Eclipse 中运行 Android 模拟器时 当我尝试编写文本时 所有键盘字符都会被翻译为中文 为什么是这样 Thanks 点击并按住EditText Select 输入法 Select 安卓键盘
  • 开始使用 Honeycomb 进行 Android 开发 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 从代码动态更改多个文本视图的大小(没有“磁盘上”xml 主题)?

    我有 10 个文本视图在我的代码中 我想更改所有代码的字体大小 在我的布局中我使用了 style定义通用属性 但是我不知道一旦布局出现在屏幕上如何从代码中更改它们 我不想做的是更新 AND 对象 但只写在一处 我知道我可以使用应用主题但这假
  • Android - 主页按钮发出什么意图?

    我想知道设备的主页按钮到底执行什么操作 即 当您单击主页按钮时会发出什么意图 意图类别和操作 回到空白的主屏幕 我想知道在单击我自己的自定义按钮时实现此操作涉及什么 谢谢 PS我知道这不是标准的 但我的设备也不是 如果您想显示主屏幕 可以通
  • 点击当前选项卡刷新页面时的 Xamarin.Forms TabbedPage 事件

    我正在使用 Xamarin Forms 构建 iOS Android 应用程序 并有一个 TabbedPage 如果用户已经在选项卡 2 上 并且单击了选项卡 2 并且我希望刷新选项卡 2 或者运行我自己的函数 以便我可以自己刷新它 有没有
  • 停止前台运行的服务的正确方法是什么

    我正在尝试停止作为前台服务运行的服务 当前的问题是当我打电话时stopService 通知仍然保留 因此 在我的解决方案中 我添加了一个接收器 我正在将其注册到onCreate 在 的里面onReceive 我调用的方法stopforegr
  • 如何减少导航图标和工具栏标题之间​​的差距?

    我的问题是导航抽屉图标和工具栏标题之间 有多余的空间 示例图像如下 工具栏的xml视图是
  • Fragment 的 onSaveInstanceState() 永远不会被调用

    我试图将数据保存在片段的 onSaveInstanceState 中 但该方法从未被调用 有人可以帮忙吗 public class MyFragment extends Fragment Override public View onCre
  • Libgdx 和 Google 应用内购买结果

    我遵循了这些指示 https github com libgdx libgdx wiki Interfacing with platform specific code使用 ActionResolver 接口集成 Libgdx 和原生 An
  • 搜索引擎如何找到相关内容? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 Google 在解析网络时如何找到相关内容 例如 Google 使用 PHP 原生 DOM 库来解析内

随机推荐

  • C 中允许空宏定义吗?他们的行为如何?

    假设 空 宏定义 define FOO 标准 C 有效吗 如果是这样 那是什么FOO在这个定义之后 它只是一个扩展为空的宏 但是 既然已经定义了宏 您可以检查 if defined or ifdef 是否已定义 define FOO int
  • 自动刷新特定 div 博主 javascript

    我在博客站点上使用 Javascript 小部件 它包含一个带有一些 JavaScript 的 div 这些 JavaScript 从服务器获取一些 非静态 字符串并将其打印在页面上 直到这里一切正常 问题是我想每隔几秒更新一次该 div
  • Python PIL加载抛出AttributeError:'NoneType'对象没有属性'read'

    我已经为这个错误苦苦挣扎了好几天 但进展甚微 基本上 我试图读入图像文件 然后使用 PIL 对其执行特定操作 我的最终目标是执行 PIL 粘贴操作 然而 每当我加载图像 然后调用它的 load 方法 诸如 show paste resize
  • 如何让 Django 在 AWS S3 上将某些文件设为公开,将媒体文件设为私有(无 403 错误)?

    我在用着boto3 and Django 存储在我的 Django 应用程序中提供来自 AWS S3 的文件 我希望我的静态文件是公开的 但其他文件是私有的 我已经有点工作但不完全 我的静态文件就像私有文件一样使用预签名密钥 在我的模板文件
  • 将命名列表传递给 cols_only() [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 当我尝试做这样的事情时 data lt read csv blah csv n max 100 col types cols only list files c Error Some co
  • 为什么这个错误类型“String”不是类型“Map ”的子类型

    已经处于这种情况很长一段时间了 但没有解决该错误 String 不是 Map 类型的子类型 提出了很多相关问题也希望得到帮助 这是我的课程 class Provider Provider required this id required
  • 如何使用脚本生成 INTERVAL 1

    我们正在尝试找到一种语法来从日期函数的第三个参数生成 DAY WEEK MONTH 选项 DECLARE var date option STRING DEFAULT DAY select GENERATE DATE ARRAY 2019
  • 使用 Plupload HTML5 运行时直接上传到 Amazon S3 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我在之前的一篇文章中看到过如何让 Plupload 直接上传到 Amazon S
  • PHPUnit 模拟对象和静态方法

    我正在寻找测试以下静态方法的最佳方法 特别是使用 Doctrine 模型 class Model User extends Doctrine Record public static function create userData new
  • 模态弹出窗口在打开时淡入,在关闭时淡出

    我有一个相当简单的问题 我有删除按钮 可以打开模式弹出窗口以确认或拒绝删除 我希望这些模式弹出窗口在单击时淡入 在取消时淡出 我已经尝试了几种不同的方法 到目前为止还没有运气 我只需要一个简单的解决方案 提前致谢 这是我的代码
  • Google Play 应用签名和即时应用

    相当直接的问题 有人知道 Google Play 应用签名是否支持即时应用吗 我问的原因是 输入应用程序的签名配置 或选择密钥库文件 虽然可以在测试期间使用调试配置或密钥库 但生成的数字资产链接文件将与应用程序的发布版本不兼容 如果您确实上
  • 从 MVC 控制器创建/获取 DefaultHtmlGenerator

    我正在尝试在 MVC6 控制器方法内为 Microsoft AspNet Mvc Rendering DefaultHtmlGenerator 创建 或以某种方式获取它的实例 我想在我的 asp net mvc 控制器中生成用于验证我的模型
  • 生成正则表达式可以在 Python 中匹配的值列表

    我尝试使用正则表达式作为输入 并从那里生成正则表达式匹配的所有可能值 因此 例如 如果正则表达式是 以 a 开头 以 c 结尾的三个字母单词 则代码将生成一个包含值 aac abc acc adc a1c 的列表 是否有捷径可寻 我正在使用
  • 在Google云机器学习上部署Retrained inception模型

    我设法使用通用初始模型重新训练我的特定分类模型tutorial 我现在想将其部署在谷歌云机器学习上steps 我已经设法将其导出为 MetaGraph 但我无法获得正确的输入和输出 在本地使用它 我的图表入口点是DecodeJpeg con
  • OpenXML Sax 方法可将 100K+ 行快速导出到 Excel

    我一直在尝试提高写入 xlsx 的 SAX 方法的性能 我知道 Excel 中的行数限制为 1048576 行 我只达到过这个极限几次 在大多数情况下 我只写出大约 125K 到 250K 行 一个大数据集 我尝试过的代码似乎没有那么快 因
  • 如何过滤 top_hits 指标聚合结果 [Elasticsearch]

    我想按地址分组 然后按日期获取最新地址 然后按状态过滤此结果 ex address A date 10 10 1991 status sold address A date 10 10 2016 status active address
  • 外连接 Pandas 数据框

    我正在尝试外部连接 在 df1 上 两个 pandas 数据框 以下是示例数据框 df1 Index Team 1 Team 2 Team1 Score Team2 Score 0 A B 25 56 1 B C 30 55 2 D E 3
  • 向图例添加额外的项目

    我有以下数据 trait beta se p analysis signif trait1 0 078 0 01 9 00E 13 group1 1 trait2 0 076 0 01 1 70E 11 group1 1 trait3 0
  • Amazon Cognito 将 IAM 角色分配给用户池中的组并与身份池集成

    我正在尝试使用用户池中新添加的用户组并将其与联合身份集成 我按照以下步骤操作 在用户池中创建组 其中在 IAM 中创建的角色具有单独的角色 政策 创建用户并将其添加到用户组 创建一个身份池并在下面添加该 Cognito 提供程序身份验证提供
  • 使用异步解析 Json url

    运行此代码时出现异常 我想解析 url 它是一个 json 对象数组 package com example compsci 734t import java io BufferedReader import java io InputSt