【问题标题】:Android JSON parsing array inside another array without keyAndroid JSON解析数组在另一个数组中,没有键
【发布时间】:2021-04-13 17:41:20
【问题描述】:

我是 JSON 新手,我对 json 数组有一些问题。我不知道如何解析那个“流派”数组。目前它只作为一个对象工作,但看起来不太好。

我希望“流派”显示 Drama,Musical 而不是 ["Drama","Musical"]

JSON:

    {
   "status_message":"Query was successful",
   "data":{
      "movie_count":25241,
      "movies":[
         {
            "id":25805,
            "title":"Rock Around the World",
            "year":1957,
            "genres":[
               "Biography",
               "Drama",
               "Music"
            ],

解析代码:

    ArrayList<Film> films = new ArrayList<>();

    try {

        JSONObject object = new JSONObject(jsonResponse);
        JSONObject data = object.getJSONObject("data");
        JSONArray movies = data.getJSONArray("movies");

        for (int i = 0; i < movies.length(); i++) {

            JSONObject details = movies.getJSONObject(i);

            String title = details.getString("title");
            int year = details.getInt("year");
            String genres = details.getString("genres");

            Film film = new Film(title, year, genres);

            films.add(film);

        }

这样的应用节目app

【问题讨论】:

  • 你的错误在这一行String genres = details.getString("genres"); 你应该像检索movies 一样检索类型,一个array。像这样JSONArray genres = details.getJSONArray("genres");
  • 我知道这一点,但在这之后我需要做什么?我需要写什么来制作电影电影 = 新电影?
  • 这取决于您想对流派做什么以及如何显示它们。如果你想将它们显示为一个简单的句子,你可能想做这样的事情genres.joinToString(),那样你会得到“genre1,genre2”而不是[“genre1”,“genre2”]
  • 我想正常显示它们。而不是 ["Drama","Music"] 成为 Drama,Music。

标签: android arrays json


【解决方案1】:

这是一个简单的方法:

String genres  = "[\"Drama\",\"Musical\"]";

genres = genres.replace("[", "");
genres = genres.replace("]", "");
genres = genres.replace("\"", "");

Log.i("MY_TAG",genres);  // Drama,Musical

测试并使用它!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-15
    • 2015-06-04
    • 2013-10-22
    • 2018-06-08
    • 1970-01-01
    • 1970-01-01
    • 2021-07-28
    • 1970-01-01
    相关资源
    最近更新 更多