当前位置: 首页 > 知识库问答 >
问题:

如何在Android中解析JSON数组(不是Json对象)

衡泰
2023-03-14

我很难找到解析JSONArray的方法。看起来是这样的:

[{"name":"name1","url":"url1"},{"name":"name2","url":"url2"},...]

如果JSON的编写方式不同(换句话说,如果返回的是JSON对象而不是对象数组),我知道如何解析它。但这是我所拥有的一切,我必须要去做。

*编辑:这是一个有效的json。我用这个json做了一个iPhone的应用程序,现在我需要为Android做,但无法解决这个问题。外面有很多例子,但它们都是与JSONObject相关的。我需要一些用于JSONArray的东西。

有人能给我一些提示,或者一个教程或一个例子吗?

非常感谢!

共有3个答案

桓深
2023-03-14
public static void main(String[] args) throws JSONException {
    String str = "[{\"name\":\"name1\",\"url\":\"url1\"},{\"name\":\"name2\",\"url\":\"url2\"}]";

    JSONArray jsonarray = new JSONArray(str);


    for(int i=0; i<jsonarray.length(); i++){
        JSONObject obj = jsonarray.getJSONObject(i);

        String name = obj.getString("name");
        String url = obj.getString("url");

        System.out.println(name);
        System.out.println(url);
    }   
}   

输出:

name1
url1
name2
url2
施华奥
2023-03-14

我只举一个小例子:

首先创建一个数据持有者,其中包含来自JSON字符串的字段

// imports
// ...
@JsonIgnoreProperties(ignoreUnknown = true)
public class MyDataHolder {
    @JsonProperty("name")
    public String mName;

    @JsonProperty("url")
    public String mUrl;
}

解析MyDataholder的列表

String jsonString = // your json
ObjectMapper mapper = new ObjectMapper();
List<MyDataHolder> list = mapper.readValue(jsonString, 
    new TypeReference<ArrayList<MyDataHolder>>() {});

使用列表项

String firstName = list.get(0).mName;
String secondName = list.get(1).mName;
东门修文
2023-03-14

使用以下代码片段解析JsonArray。

JSONArray jsonarray = new JSONArray(jsonStr);
for (int i = 0; i < jsonarray.length(); i++) {
    JSONObject jsonobject = jsonarray.getJSONObject(i);
    String name = jsonobject.getString("name");
    String url = jsonobject.getString("url");
}
 类似资料:
  • 问题内容: 我很难找到一种方法来解析JSONArray。看起来像这样: 如果JSON的写法不同,我知道如何解析它(换句话说,如果我返回了json对象而不是对象数组)。但这就是我所必须拥有的。 *编辑:这是一个有效的json。我使用此json制作了一个iPhone应用,现在我需要在Android上使用它,但无法弄清楚。有很多示例,但是它们都是与JSONObject相关的。我需要JSONArray。

  • 问题内容: JSON如下所示: 我正在尝试使用Android中的以下Java代码来解析它: JSONObject jObj = null; 尝试{jObj = new JSONObject(jsonStr); 我没有得到任何结果。如何成功解析此JSON?我正在使用Android Studio。 另外,如果阵列中有多个零件,我们如何确保将每个零件都打印出来? 问题答案: 您的JSON字符串以JSON

  • 问题内容: 我在从JSON对象提取值时遇到一些问题。这是我的代码 被声明为。代码运行时显示。如果将鼠标悬停在调试模式下,则可以看到对象中的所有值和名称。 我也试过 这回来了。即使将鼠标悬停在对象上,我也可以读取对象中的值。 这是我将使用的JSON字符串的示例。 问题答案: 最后,我使用而不是来解决它,然后将其强制转换为。

  • 问题内容: 我试图从JSON数组中获取每个JSON对象。我通过HTTP发布获得此数据。 我知道我的数据是什么样的: 我的示例代码和结构如下所示: 我不确定如何遍历JSON数组并获取JSON对象,然后仅使用JSON对象。 问题答案: 试试这个作为您的结构, 您的名称不正确,顶层名称也不正确。解码为a之后,您可以遍历切片以获取每个切片

  • 问题内容: 如何解析JSON ARRAY以获取没有[]和“”的数据 这是json 我的代码: 输出:[“ 23,Damansara-蒲种高速公路(Bandar Puchong Jaya)”,“ 47100 Puchong Batu Dua Belas,雪兰莪,”马来西亚“] 我只想要数据。如: 23,Damansara-Puchong Hwy(Bandar Puchong Jaya),47100

  • 问题内容: 嗨,我正在尝试从该 URL 解析json数组。json数组如下所示。 我在我的java类中这样做 但这不起作用,有人可以帮我解析我的json数组吗? 问题答案: 您将需要根据您在此处发布的用于解析为Json的字符串在当前代码中进行两次更改: 首先: 将方法的返回类型更改为并从中返回,而不是 例如: 第二: 更改代码以获取价值 :