微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在不知道json键的情况下使用JsonReader从json读取值

如何解决如何在不知道json键的情况下使用JsonReader从json读取值

我正在尝试使用TypedArray解析json。

我的json将是以下内容

    {
      "id":"112233","tag":"From server","users":{
      "vijay":1,"dhas":2,"vijaydhas":3
      }
    }

在这里users对象中的键是动态的。我将在运行时从服务器收到。那时只有我不知道密钥(vijay,dhas,vijaydhas)。

要解析ID和标签,我将执行以下代码

           @Override
            public MagazineReader read (JsonReader in) throws IOException {

                final MagazineReader magazineReader = new MagazineReader();

                in.beginobject();
                while (in.hasNext()) {
                    switch (in.nextName()) {
                        case "id":
                            magazineReader.setID(in.nextInt());
                            break;
                        case "tag":
                            magazineReader.setTag(in.nextString());
                            break;
                            in.beginArray();
                            /*
                                                For User how to read the json???
                             */
                }
              in.endobject();
            }

现在,我想在不知道键的情况下读取并解析用户JsonArray及其对象。我知道如何在不知道密钥的情况下解析JSONObject。

JSONObject users= obj.getJSONObject("users");
            Iterator iteratorObj = detailList.keys();
            while (iteratorObj.hasNext())
            {
                String jsonKey = (String)iteratorObj.next();
                property.put(jsonKey,usersList.get(jsonKey));
            }

但是在JsonReader中,我不知道如何在不知道密钥的情况下读取json值。请帮我。 [1]:https://javacreed.com/gson-typeadapter-example

解决方法

您可以执行以下操作:

Map

我已经使用users来存储键值对,您可以使用任何类型的对象来实现。另外,我只添加了数字和字符串值的处理程序。

重要的部分是,在进入mkdir test; ls | cd键时开始一个新对象,然后遍历该对象的所有属性。处理对象条目的方式取决于您要执行的操作。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。