【问题标题】:How to convert this string so that I can access all the elements inside?如何转换这个字符串,以便我可以访问里面的所有元素?
【发布时间】:2021-06-30 09:38:28
【问题描述】:

所以在下面我创建了一个请求,响应字符串如下所示:

{players=18.0, lobbies=[{id=1329.0, name=Desert Duel!, players=[{id=576.0, name=cipherxof, rank=0.0, host=true}, {id=596.0, name=FTP, rank=0.0, host=false}, {id=442.0, name=Keyboard+Mouse, rank=6.0, host=false}], maxPlayers=16.0, locked=false, currentGame=0.0, games=[[0.0, 17.0, 2.0]], comment=Come test this custom map!}, {id=1410.0, name=mix 24/7, players=[], maxPlayers=13.0, locked=false, currentGame=0.0, games=[[7.0, 7.0, 0.0], [3.0, 5.0, 2.0], [7.0, 2.0, 0.0], [2.0, 5.0, 2.0], [7.0, 10.0, 0.0], [4.0, 6.0, 0.0], [2.0, 3.0, 2.0], [12.0, 15.0, 2.0], [4.0, 7.0, 0.0], [7.0, 3.0, 0.0], [6.0, 10.0, 0.0], [5.0, 7.0, 0.0]], comment=EU Host. Have fun}, {id=1642.0, name=Harambe Mix, players=[{id=426.0, name=Dormant-Hero, rank=0.0, host=true}, {id=48.0, name=Solid-Freeman, rank=0.0, host=false}, {id=567.0, name=Boris, rank=0.0, host=false}, {id=740.0, name=Kojima, rank=0.0, host=false}, {id=632.0, name=Bassernic, rank=0.0, host=false}, {id=123.0, name=xXChronosXx, rank=0.0, host=false}, {id=301.0, name=dr.penguin, rank=0.0, host=false}, {id=621.0, name=EROS, rank=0.0, host=false}, {id=705.0, name=lacefrontt, rank=0.0, host=false}, {id=794.0, name=Stravaganzza, rank=0.0, host=false}, {id=58.0, name=A H M A D, rank=0.0, host=false}, {id=34.0, name=Bloody, rank=9.0, host=false}], maxPlayers=13.0, locked=false, currentGame=7.0, games=[[7.0, 1.0, 0.0], [1.0, 5.0, 0.0], [7.0, 2.0, 0.0], [5.0, 2.0, 0.0], [16.0, 10.0, 0.0], [4.0, 6.0, 0.0], [7.0, 3.0, 0.0], [2.0, 15.0, 2.0], [4.0, 7.0, 0.0], [7.0, 3.0, 0.0], [6.0, 10.0, 0.0], [5.0, 7.0, 0.0]], comment=EU Host. Have fun}, {id=1652.0, name=MIXX, players=[{id=530.0, name=Petronas, rank=0.0, host=true}, {id=553.0, name=Dormant-Hero2, rank=0.0, host=false}, {id=727.0, name=Becky, rank=0.0, host=false}], maxPlayers=12.0, locked=false, currentGame=0.0, games=[[15.0, 7.0, 0.0], [3.0, 5.0, 0.0], [5.0, 2.0, 2.0], [3.0, 7.0, 0.0], [2.0, 5.0, 2.0], [16.0, 3.0, 0.0], [3.0, 8.0, 2.0], [5.0, 10.0, 0.0], [2.0, 15.0, 2.0], [5.0, 12.0, 0.0], [3.0, 6.0, 0.0], [16.0, 2.0, 0.0], [2.0, 7.0, 0.0], [3.0, 1.0, 0.0], [5.0, 15.0, 0.0]], comment=}]}

我需要球员和大部分大厅信息。但是我不能完全弄清楚我需要对这个字符串做什么,以便我可以访问所有这些。我能做些什么?谢谢!

    @RequiresApi(api = Build.VERSION_CODES.KITKAT)
    private void test_connect(){
        //get request
        Log.d("GetRequest","Start that GET baby");
        final OkHttpClient client = new OkHttpClient();
        final Request request = new Request.Builder().url("api url").build();
        Thread thread = new Thread() {
            @Override
            public void run() {
                try (Response response = client.newCall(request).execute()) {
                    String responseData = response.body().string();
                    JSONObject json = new JSONObject(responseData);
                    // HashMap<String, Object> mapped = new Gson().fromJson(json.getString("data"), HashMap.class);
                    final String owner = json.getString("data");
                    Log.d("ShoRequest", owner.toString());

                } catch (Exception ex) {
                // Any other exception
                Log.d("diditworkexception", String.valueOf(ex));
            }
        }

    };
        thread.start();
    }

【问题讨论】:

  • 创建一个与其相似的模型并将您的响应映​​射到该模型,然后您可以从该模型中获取所需的数据
  • 听起来不错。但是我实际上不知道该怎么做。我的意思是创建一个模型。我会用谷歌搜索你所说的,看看它会把我带到哪里。谢谢

标签: android json hashmap okhttp


【解决方案1】:

兄弟首先使用在线 JSON 查看器或 JSON 到 POJO 转换器检查您的 JSON 响应,如果它们可以轻松转换,然后使用 getter 或 setter 进行下一步。

但是我已经检查了你的 JSON,他们给出了很多问题JSON 因为想要纯 JSON 数据在 Android 中不起作用。

不要误会我的意思,我已经检查过了,你的 JSON 数据完全错误

我附上了你的一些数据证明

http://prntscr.com/113pl40

http://prntscr.com/113plti

http://prntscr.com/113pm8e

http://prntscr.com/113pmmu

请看截图并正确理解我也附上了虚拟 jsondata 视图

https://jsonplaceholder.typicode.com/comments

参考请访问网站进行转换

jsonSchematoPojo

jsonformmater

或 android studio 内置插件 Dto Generator 你可以找到任何 jetbrains 网站

【讨论】:

  • 谢谢,这很有帮助。我无法继续这方面的工作,但希望能尽快完成。
  • 我明白了!好吧,它的一部分。谢谢你看这个。也非常感谢分享在线工具。这些对我将来有很大帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多