在JsonObject中查找JSON模式

时间:2014-03-08 01:01:13

标签: android json gson jsonobject

我从远程服务器下载JSON对象并将其转换为简单的POJO(使用gson lib)。 我知道JSON的架构,让我们说它看起来像这样:

{
    "a": "something",
    "c": "something",
    "e": "something"
  }

但是,JSON响应可能放在许多不同的包装器字段中,例如:

{
    "some_name":
    {
     "a": "b",
     "c": "d",
     "e": "f"
    }
}

{
    "some_name":
    {
        "some_other_name":
        {
          "a": "b",
          "c": "d",
          "e": "f"
        }
    }
}

我可以通过几个ifs达到实际内容,但我想知道是否有办法在所有字段中查找给定的架构以获得所需的内容。

我应该查看JsonObject entrySet并查看每个值,还是有更快/更好的方法?

2 个答案:

答案 0 :(得分:0)

查看gson库,我想你会喜欢它

https://sites.google.com/site/gson/gson-user-guide

https://code.google.com/p/google-gson/

另外,即使使用gson,它也会帮助您了解JSON的外观(我们正在处理的接口,是吗?=])并准备一套代表那个的类。请记住,在android(以及任何编写良好的java)中,在为对象中的feild分配值时,我们不使用getter和setter;我们只是让它们公开并直接解决它们。 (我看到使用的getter和setter就好像他们正在保护他们直接访问远程的那些领域,而且常常是为了舒适)

所以你得到一组这样的课程

class OuterClassName{
    public List<Apple> apples;
    public String picker;
}

class Apple{
    public int worms;
    public String color;
}

基本上是结构,并映射到JSON响应。一旦你拥有了,一切都变得容易了。 ProTip:如果您还在编写服务器代码,并且它是Java,则这些类已经存在; git submodule那些ftw。

答案 1 :(得分:0)

我最终循环遍历entrySet并寻找我的模式。