2

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

GSON 简单而健壮,但对我来说很慢。所以我决定实际尝试一下这个杰克逊的东西,但是,这里的解析似乎比 GSON 更令人困惑。

我要解析的值的数据类型只是一个Boolean

这就是我试图解析的 JSON 的样子:

{"FooResult":true}

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

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

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

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

4

2 回答 2

5

您应该像这样创建一个新类:

class MyClass {
   public boolean FooResult;
}

并使用此代码加载数据:

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

然后您可以使用myObject.FooResult

于 2012-11-02T23:13:49.450 回答
0

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

所以现在它终于起作用了。

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;
于 2012-11-02T23:48:31.343 回答