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

新开发者

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

我的json将是以下内容:

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

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

为了解析id和tag,我将执行以下代码。

           @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

泰特斯

您可以执行以下操作:

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

  final MagazineReader magazineReader = new MagazineReader();
  final Map<String, Object> users = new HashMap<>();

  in.beginObject();
  while (in.hasNext()) {
    switch (in.nextName()) {
      case "id":
        magazineReader.setID(in.nextInt());
        break;
      case "tag":
        magazineReader.setTag(in.nextString());
        break;
      case "users":
        in.beginObject();
        while(in.hasNext()) {
          String key = in.nextName();
          JsonToken type = in.peek();
          if (type == JsonToken.NUMBER) {
            users.put(key, in.nextInt());
          } else if (type == JsonToken.STRING) {
            users.put(key, in.nextString());
          } else {
            System.err.println("Unhandled type: " + type);
          }
        }
        in.endObject();
        break;
    }
    in.endObject();
  }
}

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

重要的部分是,在您到达users时开始一个新对象,然后遍历该对象的所有属性。如何处理对象的条目取决于您要执行的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在不知道键的情况下使用 javascript 从多级 JSON 中获取值

来自分类Dev

在不知道键的情况下解析json

来自分类Dev

如何在不知道VB.NET中数字键名称的情况下从JSON获取值

来自分类Dev

如何在不知道Ract Native中的键的情况下遍历json数组并打印值?

来自分类Dev

如何在不知道JSON值的情况下动态解析某些JSON?

来自分类Dev

Javascript:如何在不知道键名的情况下解析json数组?

来自分类Dev

如何在不知道它是否为数组的情况下遍历JSON属性?

来自分类Dev

如何在不知道对象名称的情况下返回Json objects子对象?

来自分类Dev

如何在不知道其在Visual Studio中的位置的情况下使用SqlDataReader从选择中获取值

来自分类Dev

如何在不知道键的情况下基于键动态将嵌套的Json对象/数组转换为多个列表

来自分类Dev

在不知道结构的情况下解组嵌套的json

来自分类Dev

在Objectify中,如何在不知道父键的情况下通过ID加载实体?

来自分类Dev

如何在不知道键的情况下从字典中获得价值?

来自分类Dev

如何在不知道键的情况下提取对象每个值的返回类型

来自分类Dev

如何在不知道输入大小的情况下读取输入?

来自分类Dev

如何在不知道变量名称的情况下读取查询字符串?

来自分类Dev

如何在不知道其名称(且不在数组中)的情况下访问JSON对象

来自分类Dev

Delphi-JSON对象-如何在不知道属性名称的情况下迭代所有属性?

来自分类Dev

如何在不知道我在 Python 中查找的对象名称的情况下解析 JSON 文件?

来自分类Dev

如何在不知道有多少项的情况下使用foreach遍历多维数组?

来自分类Dev

如何在不知道类名的情况下使用NDB查询

来自分类Dev

如何在不知道使用Matlab采样频率的情况下计算信号的频率

来自分类Dev

如何在不知道列表名称的情况下使用 zip

来自分类Dev

如何在不知道快捷键映射到的情况下取消分配快捷键

来自分类Dev

字典在不知道键的情况下获得价值

来自分类Dev

在不知道类型的情况下从文件中读取

来自分类Dev

如何在不知道父键的情况下通过特定值查询Firebase数据库

来自分类Dev

如何在不知道键的情况下访问哈希表的第一个值?

来自分类Dev

如何在不知道Perl中目录名称的情况下读取目录和子目录?

Related 相关文章

  1. 1

    如何在不知道键的情况下使用 javascript 从多级 JSON 中获取值

  2. 2

    在不知道键的情况下解析json

  3. 3

    如何在不知道VB.NET中数字键名称的情况下从JSON获取值

  4. 4

    如何在不知道Ract Native中的键的情况下遍历json数组并打印值?

  5. 5

    如何在不知道JSON值的情况下动态解析某些JSON?

  6. 6

    Javascript:如何在不知道键名的情况下解析json数组?

  7. 7

    如何在不知道它是否为数组的情况下遍历JSON属性?

  8. 8

    如何在不知道对象名称的情况下返回Json objects子对象?

  9. 9

    如何在不知道其在Visual Studio中的位置的情况下使用SqlDataReader从选择中获取值

  10. 10

    如何在不知道键的情况下基于键动态将嵌套的Json对象/数组转换为多个列表

  11. 11

    在不知道结构的情况下解组嵌套的json

  12. 12

    在Objectify中,如何在不知道父键的情况下通过ID加载实体?

  13. 13

    如何在不知道键的情况下从字典中获得价值?

  14. 14

    如何在不知道键的情况下提取对象每个值的返回类型

  15. 15

    如何在不知道输入大小的情况下读取输入?

  16. 16

    如何在不知道变量名称的情况下读取查询字符串?

  17. 17

    如何在不知道其名称(且不在数组中)的情况下访问JSON对象

  18. 18

    Delphi-JSON对象-如何在不知道属性名称的情况下迭代所有属性?

  19. 19

    如何在不知道我在 Python 中查找的对象名称的情况下解析 JSON 文件?

  20. 20

    如何在不知道有多少项的情况下使用foreach遍历多维数组?

  21. 21

    如何在不知道类名的情况下使用NDB查询

  22. 22

    如何在不知道使用Matlab采样频率的情况下计算信号的频率

  23. 23

    如何在不知道列表名称的情况下使用 zip

  24. 24

    如何在不知道快捷键映射到的情况下取消分配快捷键

  25. 25

    字典在不知道键的情况下获得价值

  26. 26

    在不知道类型的情况下从文件中读取

  27. 27

    如何在不知道父键的情况下通过特定值查询Firebase数据库

  28. 28

    如何在不知道键的情况下访问哈希表的第一个值?

  29. 29

    如何在不知道Perl中目录名称的情况下读取目录和子目录?

热门标签

归档