【问题标题】:Displaying data by looping through JSON Array通过 JSON Array 循环显示数据
【发布时间】:2018-03-23 17:46:34
【问题描述】:

我想知道如何遍历 JSON 数组。 数据库是这样的:

{"Similar": {"Info": [{"Name": "Pulp Fiction", "Type": "movie"}], "Results": [{"Name": "Reservoir Dogs", "Type": "movie"}, {"Name": "Kill Bill", "Type": "movie"}, {"Name": "Jackie Brown", "Type": "movie"}

我正在使用 API 调用,我只想提取电影的标题,所以我有例如“落水狗”、“杀死比尔”显示在日志中。

这段代码提取“落水狗”并显示在日志中:

@Override
        public void onSuccess(int statusCode, Header[] headers, JSONObject response) {

            try {

                JSONArray array = response.getJSONObject("Similar").getJSONArray("Results");

                String movie = String.valueOf(response.getJSONObject("Similar").getJSONArray("Results").getJSONObject(0).getString("Name"));

                Log.d("recommendMe", movie);

            } catch (JSONException e) {

                e.printStackTrace();

            }

        }

不幸的是,要显示所有标题,我至少需要创建几个字符串变量,十个或二十个。那么问题来了,如何循环遍历这个数组来一次性显示所有标题呢?

【问题讨论】:

  • 您不会遍历 JSON。您加载并解码 JSON,此时它不再是 JSON,然后迭代数组,假设它是一个数组。
  • this 回答你的问题了吗?
  • JSON 无效

标签: arrays json


【解决方案1】:

您可以使用JSON.parse

假设这是你的 json:

'{ "name":"John", "age":30, "city":"New York"}'

将其发送给 obj:

var obj = JSON.parse('{ "name":"John", "age":30, "city":"New York"}');

现在你可以这样使用了:

alert(obj.name);
alert(obj.age);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-17
    • 2017-01-25
    • 2015-04-03
    • 2021-02-05
    • 2020-01-12
    • 2016-04-26
    • 1970-01-01
    相关资源
    最近更新 更多