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解析 的相关文章

  • Android 30+ 中的视频捕获意图 - 只有所有者才能与待处理项目交互

    我正在尝试在我的应用程序上捕获视频 它可以在 android API 30 以下运行 但不能在 30 以上运行 似乎在 sdk 30 之后 android 不允许完全读取外部存储 作用域存储 我目前遇到这个错误 java lang Ille
  • 在 JsonConverter 中递归调用 JsonSerializer

    我正在写一个JsonConverter要执行一些我需要在读 写时完成的转换任务 特别是 我采用现有的序列化行为 并在写入 读取时添加一些附加属性 在 的里面JsonConverter 我想利用通过的JsonSerializer实例来执行大部
  • Android Activity 生命周期函数基础知识

    我正在测试这段代码 它显示活动所处的状态 public class Activity101Activity extends Activity String tag Lifecycle Called when the activity is
  • 在画布上绘图

    我正在编写一个 Android 应用程序 它可以在视图的 onDraw 事件上直接绘制到画布上 我正在绘制一些涉及单独绘制每个像素的东西 为此我使用类似的东西 for int x 0 x lt xMax x for int y 0 y lt
  • Android 模拟器插件无法初始化后端 EGL 显示

    我在 Cloudbees 上设置了 Jenkins 作业 并且可以在那里成功签出并编译我的 Android 项目 现在我想在 android 模拟器中运行一些 JUnit 测试并添加 Android 模拟器插件 我将 显示模拟器窗口 选项设
  • 使用 Android 发送 HTTP Post 请求

    我一直在尝试从 SO 和其他网站上的大量示例中学习 但我无法弄清楚为什么我编写的示例不起作用 我正在构建一个小型概念验证应用程序 它可以识别语音并将其 文本 作为 POST 请求发送到 node js 服务器 我已确认语音识别有效 并且服务
  • 在 HTTPResponse Android 中跟踪重定向

    我需要遵循 HTTPost 给我的重定向 当我发出 HTTP post 并尝试读取响应时 我得到重定向页面 html 我怎样才能解决这个问题 代码 public void parseDoc final HttpParams params n
  • 无法展开 RemoteViews - 错误通知

    最近 我收到越来越多的用户收到 RemoteServiceException 错误的报告 我每次给出的堆栈跟踪如下 android app RemoteServiceException Bad notification posted fro
  • 原色(有时)变得透明

    我正在使用最新的 SDK 版本 API 21 和支持库 21 0 2 进行开发 并且在尝试实施新的材料设计指南时遇到了麻烦 材料设计说我需要有我的primary color and my accent color并将它们应用到我的应用程序上
  • 你的CPU不支持NX

    我刚刚下载了 android studio 但是我遇到了一个问题 当我运行它时 它说你的 cpu 不支持 NX 我应该怎么办 NX 或实际上是 NX 处理器位 是处理器的一项功能 有助于保护您的 PC 免受恶意软件的攻击 当此功能未启用并且
  • Ubuntu 16.04 - Genymotion:找不到 /dev/hw_random

    I install Genymotion on the Ubuntu 16 04 64Bit I created a virtual emulator for Android 6 0 then I run this emulator but
  • Google 云端硬盘身份验证异常 - 需要许可吗? (v2)

    我一直在尝试将 Google Drive v2 添加到我的 Android 应用程序中 但无法获得授权 我收到 UserRecoverableAuthIOException 并显示消息 NeedPermission 我感觉 Google A
  • 我想实现下面的布局,按钮应该在屏幕底部,当惰性列被填充时,按钮不应该出去

    顶部有惰性列 惰性列下方有输入电话号码布局并从电话簿布局添加联系人 我希望当未添加联系人时此布局位于顶部 当我添加大量联系人时输入电话号码并添加电话簿布局中的联系人会随着惰性列滚动并移出屏幕 我不让他们走出屏幕 当接触较多时 它们必须粘在底
  • Android Studio 0.4.3 Eclipse项目没有gradle

    在此版本之前 在 Android Studio 中按原样打开 Eclipse 项目似乎很容易 无需任何转换 我更喜欢 Android Studio 环境 但我正在开发一个使用 eclipse 作为主要 IDE 的项目 我不想只为这个项目下载
  • Eclipse Java 远程调试器通过 VPN 速度极慢

    我有时被迫离开办公室工作 这意味着我需要通过 VPN 进入我的实验室 我注意到在这种情况下使用 Eclipse 进行远程调试速度非常慢 速度慢到调试器需要 5 7 分钟才能连接到远程 jvm 连接后 每次单步执行断点 行可能需要 20 30
  • 无法捆绑适用于 Mac 的 Java 应用程序 1.8

    我正在尝试将我的 Java 应用程序导出到 Mac 该应用程序基于编译器合规级别 1 7 我尝试了不同的方法来捆绑应用程序 1 日食 我可以用来在 Eclipse 上导出的最新 JVM 版本是 1 6 2 马文 看来Maven上也存在同样的
  • .isProviderEnabled(LocationManager.NETWORK_PROVIDER) 在 Android 中始终为 true

    我不知道为什么 但我的变量isNetowrkEnabled总是返回 true 我的设备上是否启用互联网并不重要 这是我的GPSTracker class public class GPSTracker extends Service imp
  • 如何确定对手机号码的呼叫是本地呼叫还是 STD 或 ISD

    我正在为 Android 开发某种应用程序 但不知道如何获取被叫号码是本地或 STD 的号码的数据 即手机号码检查器等应用程序从哪里获取数据 注意 我说的是手机号码 而不是固定电话 固定电话号码 你得到的数字是字符串类型 因此 您可以获取号
  • C# - OutOfMemoryException 在 JSON 文件上保存列表

    我正在尝试保存压力图的流数据 基本上我有一个压力矩阵定义为 double pressureMatrix new double e Data GetLength 0 e Data GetLength 1 基本上 我得到了其中之一pressur
  • 按日期对 RecyclerView 进行排序

    我正在尝试按日期对 RecyclerView 进行排序 但我尝试了太多的事情 我不知道现在该尝试什么 问题就出在这条线上适配器 notifyDataSetChanged 因为如果我不放 不会显示错误 但也不会更新 recyclerview

随机推荐

  • 如何使用带有响应式 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