我已经阅读了一些不同的文章,比较和教程,它们使用不同的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
键。解析为布尔值。
答案 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;