【问题标题】:Parsing JSON into a string array or xml将 JSON 解析为字符串数组或 xml
【发布时间】:2014-07-12 14:13:35
【问题描述】:

我正在尝试连接到一个服务器,而不是连接到Google Places API 并返回我所需的数据,返回的数据采用这种格式Here

现在在我的 Android 应用程序中,我将其作为 stringstring[],问题是我现在如何将其解析为 XML 或将其转换为像 List 这样的本机类型或其他东西还能用吗?

如果您查看返回的字符串,实际数组 results 在两个元素 html_attributionsnext_page_token 之后开始,那么我如何将它们分开并解析。请帮忙。

【问题讨论】:

  • Google Places API 可以返回 json 和 xml 格式。你试过用xml格式代替吗?
  • 是的,我做到了,但是因为我不能直接连接到 API,而是通过服务器。因此,即使我尝试从服务器发送 XML,我仍然会收到 JSON,所以我只想继续进行 JSON 解析。

标签: java android json google-places-api


【解决方案1】:

我建议你使用 Google 的 Gson 库,它可以轻松地转换 JSON -> Object 。这是一个很好的教程:tutorial。 该库被用于这些调用的著名库 Retrofit 使用,它将下载数据并使用 Gson 将其转换为对象:retrofit

【讨论】:

    【解决方案2】:

    在android中进行Json解析的方式有很多种。

    如果您只想获取 json 并将其转换为 java 对象,那么您可以使用 gson。序列化对象时,gson 将忽略 json 中与您将用于序列化的 java 对象不匹配的任何键。因此,只需使用 results 实例变量创建您的 java 对象,

    https://code.google.com/p/google-gson/
    

    您可以使用内置的 JsonReader 类来获取“结果”并将其放入 json 数组中,如果您想将其单独列出。

    熟悉改造也是一件好事。然而,这个库提供的功能比您的解决方案需要的多。该库为您抽象了整个 http 请求、响应、json 解析和 gson 序列化。很简单,你在对象上调用一个方法,然后取回已经序列化的 pojo 中的 json。

    http://square.github.io/retrofit/
    

    【讨论】:

      【解决方案3】:

      如果你返回的数据是json格式,则创建一个JsonObject,解析为Json而不是xml,可以取回值并创建String[]。向this tutorial寻求帮助

      当然,您可以使用Gson 库将jsonObject 序列化和反序列化为pojoObject

      【讨论】:

        【解决方案4】:

        理想情况下,您应该使用其他人提到的 Google GSON 之类的酷方便库进行 JSON 解析,但无论如何我将解释如何将您的 json 字符串与旧的简单 org.json 库一起使用。如果您从服务器返回的 json 字符串在字符串 s 中,请执行以下操作:

            JSONObject places=new JSONObject(s);
            JSONArray results=places.getJSONArray("results");
            for(int i=0;i<results.length();i++){
               System.out.println(results.getJSONObject(i).getString("place_id"))
               System.out.println(results.getJSONObject(i).getString("scope"));
            }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-02-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多