Android Studio 1.5.1中的JSON解析

2024-04-06

我在 Eclipse ADT 上进行了 JSON 解析,并且运行完美。但是,当在 Android Studio 上使用相同的代码时,它在 DefaultHttpClient 和该块中的所有其他单词中显示错误。

这是我的 JSON 解析器类

JSONParser.java

public class JSONParser {

    JSONArray cArray;
    JSONObject jsonObj;
    InputStream is = null;
    String jsonStr = "";
    String urlString;
    Context context;
    String id;
    String name, email, mobile;

    Contacts contacts;
    List < Contacts > contactList;

    public JSONParser() {
        // TODO Auto-generated constructor stub
    }

    public JSONParser(String url) {
        this.urlString = url;
    }

    public List < Contacts > getString() {

        contactList = new ArrayList < Contacts > ();

        try {
            // **Error in this block**

            DefaultHttpClient httpClient = new DefaultHttpClient();
            HttpPost httpPost = new HttpPost(urlString);

            HttpResponse httpResponse = httpClient.execute(httpPost);

            HttpEntity httpEntity = httpResponse.getEntity();
            is = httpEntity.getContent();

        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (NullPointerException e) {
            Log.e("NULL DATA", "cant fetch " + e.toString());
        }

        try {
            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
            StringBuilder sb = new StringBuilder();

            String line = null;
            while ((line = reader.readLine()) != null) {
                sb.append(line + "\n");
            }
            is.close();
            jsonStr = sb.toString();


        } catch (Exception e) {
            Log.e("Buffer Error", "Error converting result " + e.toString());
        }


        if (jsonStr != null) {
            try {

                cArray = new JSONArray(jsonStr);

                JSONObject jsonObj = null;

                // looping through All Contacts
                for (int i = 0; i < cArray.length(); i++) {
                    jsonObj = cArray.getJSONObject(i);

                    id = jsonObj.getString("foodno");
                    name = jsonObj.getString("foodname");
                    email = jsonObj.getString("foodtype");

                    /* JSONObject phoneNo = jsonObj.getJSONObject("phone");
                     mobile = phoneNo.getString("mobile");*/

                    contacts = new Contacts(id, name, email);


                    // adding contact to contact list
                    contactList.add(contacts);
                }
            } catch (JSONException e) {
                e.printStackTrace();
            } catch (NullPointerException e) {
                e.printStackTrace();
            }

        } else {
            Log.e("JSONParser", "Couldn't get any data from the url");
        }


        return contactList;

    }

}

谁能建议如何连接以获取可以传递给 BufferedReader 的 json 字符串?


我强烈建议您使用图书馆来完成这项工作。你可以使用GSON lib https://github.com/google/gson(由谷歌开发)或杰克逊·利布 https://github.com/FasterXML/jackson。对于您可以使用的请求改造库 http://square.github.io/retrofit/(由 Square 开发)。

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

Android Studio 1.5.1中的JSON解析 的相关文章

  • GridView 中多次调用 getView()

    我的 Activity 由包含 40 多个元素的 GridView 组成 开始活动后 用户最多可以看到 15 个项目 3 行 每行 5 个项目 我在 getView 正文中编写传递给获取 View 的 LogCat 编号 Log i get
  • eclipse中导入项目文件夹图标

    我在 Eclipse 工作区中新导入的 Maven 项目有J and M项目文件夹顶部的图标 项目和包资源管理器 而其他导入的 Maven 项目只有一个J icon 有人可以解释其中的区别吗 该项目有J装饰器被称为 Java 项目和具有M装
  • 记录骆驼路线

    我的项目中有几个 Camel 上下文 如果可能的话 我想以逆向工程方式记录路线 因为我们希望保持与上下文相关的文档最新 最好的方法是什么 我们倾向于预先实际设计路线 并使用来自EIP book http www eaipatterns co
  • Renderscript 示例构建错误

    所以我想尝试使用 RenderScript 的示例 并在 Eclipse 中导入了 HelloWorld 但它给了我这样的错误 2011 10 25 13 10 48 HelloWorld home mileoresko workspace
  • 应用内结算错误

    我的 UNMANAGED 应用内购买无法正常工作 在它完美运行之前 我可以使用测试帐户成功购买 但它突然不起作用了 因为我记得我对商家帐户所做的只是添加更多 2 4 个测试帐户 添加后 我的应用内购买将不起作用 所以我更新了公钥并上传了一个
  • 如何强制从本机代码打开 Android 软键盘?

    我有一个游戏 当用户触摸屏幕时 它使用从 C 到 Java 的回调来强制打开软键盘 Java代码很简单是这样的 this inputMethodManager toggleSoftInput InputMethodManager SHOW
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • 如何使用 Firebase UI 在 recyclerView 中显示时从 Firebase 数据库中的子级引用父级

    我目前正在引用 quote text 子项 这些数据显示在recyclerview using firebase用户界面 我想获取 quote text 的父名称 如何获取 quote text 孩子的父母姓名 When user clic
  • Firebase ANR - 甚至不使用 firebase

    随着 GMS 的最新更新 引入了新的 ANR 如果您退出应用程序 然后返回 则 ANR 就会初始化 线程跟踪似乎指向 Firebase 但我什至从未开始使用 Firebase 我猜它一定是新的 GMS 包的一部分 06 11 00 34 0
  • 无法加载或查找主类,可以在命令行中使用,但不能在 IDE 中使用[重复]

    这个问题在这里已经有答案了 在将其标记为重复之前 请先听我说完 我正在尝试使用 gradle 导入一个 java 项目 功能齐全 适用于所有其他笔记本电脑 没有问题 我的项目 100 正常运行 适用于所有其他笔记本电脑 当我的笔记本电脑被重
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • 为什么Android应用程序在发布到市场后尺寸会增加?

    我最近在 Android 市场上发布了我的应用程序 显示应用程序大小为 5 4MB 而实际 apk 大小为 2 8MB 为什么显示多出2MB 我应该如何限制我的应用程序大小 请帮我 您的应用程序大小会增加 因为您使用了复制保护选项ON在发布
  • java.lang.IllegalArgumentException:找不到片段的 id 0x1020002 (android:id/content) 的视图

    我正在尝试从一个片段移动到另一个片段 它在片段事务期间显示以下错误 java lang IllegalArgumentException No view found for id 0x1020002 android id content f
  • BottomSheetDialog get Behavour 始终返回 null

    我与底部表单对话框我必须获得行为才能设置setBottomSheetCallback 来处理一些事情 As 谷歌说 https android developers googleblog com 2016 02 android suppor
  • 在Android Studio中更改项目主题?

    我使用浅色主题创建了一些项目 现在我想将其更改为深色 但我不知道该怎么做 顺便说一句 我不是问如何在代码中做到这一点 只是问如何更改项目的默认主题 在 AndroidManifest xml 的 application 标签下 您可以设置您
  • Nexus 7 (2013) 和 Win 7 64 - 尽管检查了许多论坛和在线资源,仍无法安装 USB 驱动程序

    我正在尝试设置 Nexus 7 2013 进行调试 但我在安装 USB 驱动程序的步骤中陷入困境 到目前为止 这是我尝试过的 采取的步骤 在 Nexus 7 2013 上打开调试模式 连接设备至 PC 下载 Google USB 驱动程序于
  • android httprequest java.net.UnknownHostException

    我想用android发出http请求 是使用这个 void testHTTP HttpClient httpClient new DefaultHttpClient HttpUriRequest request new HttpPost h
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • 挂钩 Eclipse 构建过程吗?

    我希望在 Eclipse 中按下构建按钮时能够运行一个简单的 Java 程序 目前 当我单击 构建 时 它会运行一些 JRebel 日志记录代码 我有一个程序可以解析 JRebel 日志文件并将统计信息存储在数据库中 是否可以编写一个插件或
  • 在 Honeycomb Android 3.0 中显示 Action Bar 菜单项的图标

    我正在使用 Honeycomb android 3 0 开发 Android 应用程序 我正在尝试在 Action Bar 中显示菜单 菜单有一个图标和标题 当我们单击菜单项时 它会以下拉列表的形式显示其项目 它是下拉列表中带有项目名称但不

随机推荐

  • 如何使用带有响应式 UI 的 Xamarin Android 将数据绑定到自定义 ListView

    我正在使用带有响应式 UI 的 Xamarin Android 而不是使用 Xamarin Forms 我有一个自定义 ListView 我已将其布局定义为 xaml 我不知道如何将此控件绑定到 ViewModel 中的 observabl
  • 哪些平台不在 type_info op== 中使用字符串比较?

    这是一个典型的实现type info operator if PLATFORM SUPPORTS UNIQUE TYPEINFO bool operator const type info rhs const return mangled
  • 在应用程序购买中验证

    我正在构建一个 iPhone 应用程序 该应用程序应该通过应用程序内购买处理订阅 当我在应用程序中从 Apple 收到收据时 我想将收据保存在我自己的服务器上 并且在我的服务器上我还想通过 Apple 服务器验证收据 与我的服务器建立连接非
  • 将整数变量传递给任务而不丢失整数类型

    我有一个我不拥有的任务 实际上是一个角色 但在这里使用任务是为了使示例更容易 它对变量进行一些操作 它假设变量是整数 我需要以某种方式向它传递一个变量并将其作为 int 传递 但我没有任何运气 这是我不拥有的任务的超级简化版本 frob y
  • 信息堆大小

    我可以从以下网站获得哪些信息performance memoryChrome 中的对象 这些数字意味着什么 它们是kb还是字符 我可以从这些数字中了解到什么 示例值performance memory MemoryInfo jsHeapSi
  • 为什么这个正则表达式在 Java 中不能按预期工作?

    简单的正则表达式问题 答案很可能是 Java 特定的 This is a comment in a file matches 这会返回 false 据我所知 意味着它总是意味着什么 没有什么特殊意义 所以我就翻译一下 作为 字符串开头的 哪
  • 如何在 Linux 上用 C++ 播放或录制音频(以 .WAV 格式)?

    你好 我一直在寻找一种方法play and recordLinux 最好是 Ubuntu 系统上的音频 我目前正在开发一个前端语音识别工具包 https www launchpad net cmusphinx train这将自动执行调整语音
  • ASP.NET MVC 4 / Web API - 为接受插入 Razor 渲染器:text/html

    我正在使用 ASP NET MVC 4 Web API 创建 RESTful Web 服务 对于 API 访问 我返回 JSON 但一旦一切正常工作 内容协商应该默认适用于 XML 和 JSON 由于我正在致力于实现真正的 RESTful
  • Apache Hadoop Yarn - 核心利用率不足

    无论我如何修改设置yarn site xml即使用以下所有选项 yarn scheduler minimum allocation vcores yarn nodemanager resource memory mb yarn nodema
  • SocketException:套接字已关闭

    我正在使用 Java Sockets 创建一个聊天应用程序 并且得到了SocketException socket closed关闭服务器时 我收到错误即使我从未尝试连接客户端 只是停止服务器将会出现此套接字关闭异常 我知道错误意味着什么
  • 如何检测Azure Add-AzureAccount登录是否失败或被取消?

    在我使用的 Azure PowerShell 脚本中Add AzureAccount将用户登录到 Azure 但是如何检测用户是否未成功完成登录以便我可以中止脚本 另一种方法是使用 try 和 catch 块 try Add AzureAc
  • Haskell opengl 纹理 GLFW

    我一直在尝试获取一些仅使用 texcoords 在正方形上显示纹理的脚本 如果可能的话 您可以编辑脚本 以便它可以正常工作 从那里我可以了解您是如何做到的 因为这就是我学习的方式 import Control Monad unless wh
  • 找不到“AllowAnonymous”

    一切正常 直到我安装 包管理器控制台 邮政包 然后卸载并安装旧版本 现在我收到了以前没有的错误 错误 The type or namespace name AllowAnonymous could not be found are you
  • 引用类型存在于堆上,值类型存在于堆栈上

    在阅读 C 深度 时 我正在阅读标题为 引用类型位于堆上 值类型位于堆栈上 的部分 现在我能理解的是 主要针对 ref 类型 class Program int a 5 stored in heap public void Add int
  • 如何从 Nagios-Report Perl 模块打印 Nagios 服务 UP 时间百分比

    我可以打印出来HostUP 时间百分比从Nagios 报告 Perl 模块 http search cpan org hopcrofts Nagios Report 0 003 与以下代码 usr bin perl use strict u
  • 如何在iPhone中设置标签栏中的徽章值?

    我使用以下代码在当前选项卡栏中设置徽章值 但它在选项卡栏中不可见 self navigationController tabBarItem badgeValue 1 将徽章值放入选项卡栏中的正确方法是什么 这是我访问 tabBarItem
  • 每次服务器重新启动后 MySQL 都会损坏

    我有一个有点奇怪的问题 我在 Windows 环境中运行 MySQL 和 Drupal 站点 不是出于选择 但这就是事情的结果 大多数时候该站点都很好 但是每次服务器重新启动 从更新或维护 时数据库将损坏 当我登录 MySQL Work b
  • Android 圆形边框表格

    如何在 Android 中制作一个带有圆形边框的表格 如下图所示 我认为 Androidbase 链接到了错误的问题 他最近问了一个类似的问题 这是answer https stackoverflow com questions 23795
  • Git 提交与旧的、已失效的用户而不是我现在拥有的用户相关联

    我的机器曾经有一个与某个 GitHub 帐户 account a 关联的 RSA 密钥 我从钥匙链中删除了该密钥 创建了一个新密钥 将其添加到链中 然后确保我在 GitHub 上拥有的任何其他帐户不再有任何与其关联的 SSH 密钥 请注意
  • Android Studio 1.5.1中的JSON解析

    我在 Eclipse ADT 上进行了 JSON 解析 并且运行完美 但是 当在 Android Studio 上使用相同的代码时 它在 DefaultHttpClient 和该块中的所有其他单词中显示错误 这是我的 JSON 解析器类 J