Android JSON解析(杰克逊)

时间:2012-11-02 23:09:45

标签: java android json parsing jackson

我已经阅读了一些不同的文章,比较和教程,它们使用不同的JSON-Libraries将JSON解析(并创建)到Java对象中。无论如何,我认为我已经掌握了正确的事实,因为我决定使用名为 Jackson的JSON库。

GSON简单而强大,但却减慢了对我说话的方法。所以我决定实际尝试这个杰克逊的东西,但似乎这里的解析比GSON更令人困惑。

我要解析的值的数据类型只是布尔值

这就是我要解析的JSON:

{"FooResult":true}

所以我真正需要帮助的是从键FooResult中选择值,然后将其值解析为布尔值。

这是我到目前为止所做的:

String json = getString(request);
ObjectMapper mapper = new ObjectMapper();
mapper.readValue(json, Boolean.class);

但是这段代码显然给了我一个错误,因为我没有选择它是我感兴趣的FooResult键。解析为布尔值。

2 个答案:

答案 0 :(得分:5)

你应该创建一个这样的新类:

class MyClass {
   public boolean FooResult;
}

并使用此代码加载数据:

MyClass myObject = mapper.readValue(json, MyClass.class);

然后,您可以使用myObject.FooResult

访问该值

答案 1 :(得分:0)

好的,这很蹩脚。当我重新思考它时,甚至更加冷静。问题一直是您要解析的对象的类需要静态。在我今天发布这个问题之前,我已经尝试过西蒙建议的四到五次,但问题一直是这个课程不是静态

所以现在它终于奏效了。

static class FooClass
{  
    public boolean FooResult; 
}

对于解析过程。

String json = getString(request);
ObjectMapper mapper = new ObjectMapper();
FooClass fooClass = null;
try 
{
    fooClass = mapper.readValue(json, FooClass.class);
}
boolean result = fooClass.FooResult;