【问题标题】:How to get specific values from returned HttpResponse如何从返回的 HttpResponse 中获取特定值
【发布时间】:2014-04-27 10:32:00
【问题描述】:

我得到一个带有 api 的 httpresponse,但是如何从该响应中获取特定字段?示例返回响应如下:

{"test": {
   "id": 179512,
   "name": "Test",
   "IconId": 606,
   "revisionDate": 139844341200,
   "Level": 20
}}

例如,我只想要 id 字段。

            HttpClient client = new DefaultHttpClient();
            String getURL = url;
            HttpGet get = new HttpGet(getURL);
            HttpResponse responseGet = null;
            try {
                responseGet = client.execute(get);
                HttpEntity resEntityGet = responseGet.getEntity();
                response = EntityUtils.toString(resEntityGet);
                Log.e("deneme", response);
                return response;
            } catch (Exception e) {
                e.printStackTrace();
            }

【问题讨论】:

    标签: java android json api http


    【解决方案1】:

    不幸的是,它如何返回数据取决于 API,您应该问的是我将如何解析这些数据,对我来说这是静态类型语言的痛苦之一。

    我个人在所有项目中都使用 Jackson 来解析 json,主要是因为它与 spring 配合得很好。

    这是一个非常简单的示例,说明您尝试使用 Jackson 完成的工作

    http://www.mkyong.com/java/jackson-tree-model-example/

    【讨论】:

    • 我必须下载源才能使用它吗?
    • 不,你想要这些库,它们在 Maven 存储库中可用
    【解决方案2】:

    你知道解析是什么意思吗?

    解析基本上是获取这样的数据(通常是长字符串)并将其转换为您可以实际使用的数据,或者至少更容易使用。

    你可以自己做......但除非你正在学习,否则这是一件非常烦人的事情。

    您正在使用 JSON 内容类型。您可以使用一堆 Java JSON 解析器库。我最喜欢的是 GSON,但它需要一点编码。最好只使用常规的 json 库。转到http://json.org/ 并滚动到底部以找到您可以使用的一百万个库。

    【讨论】:

    • 如何在我当前的代码中实现 Gson?我需要将 HttpEntity 转换为 Gson 吗?将字符串转换为 Gson?或者 Gson 有什么东西可以从我的 url 中获取数据?
    猜你喜欢
    • 2019-09-29
    • 2020-11-01
    • 1970-01-01
    • 2013-09-18
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多