更有效地解析json?

时间:2013-07-04 07:40:19

标签: java json

我有一个类似

的JSON
{
    "status":{
        "server":{"bool":true},
        "request":{"bool":true},
        "third_party":{"bool":true},
        "operation":{"bool":false,"int":-12,"str":"Not authenticated!"}
    },
    "response":{
        "count":3,
        "emails":["email1@mail.com","email2@mail.com","email3@mail.com"]
    }
}

注意:上面的JSON代码只是一个例子,看起来可能不合逻辑。

问题是我认为使用JSONObject解析它并没有效率,代码变得一团糟。

因此,我想知道在使用json_decode()时是否有像PHP一样解析它的方法。

这将使我以这种方式达到元素

JSONParser jp = new JSONParser(json);
boolean server_status = jp.status.server.bool;

我希望你能理解我的意思并帮助我。

谢谢。

2 个答案:

答案 0 :(得分:2)

在java中解析/编写JSON有很多选择。以下是一些提示:

  1. http://jackson.codehaus.org/ 这是一个非常完整的解决方案,它还具有类似StAX的API,可实现超高处理速度。

  2. https://code.google.com/p/google-gson/ 也非常完整

  3. https://code.google.com/p/json-simple/ 如果您需要一些简单的东西,只需将所有内容解码为地图,那么您就在这里。

答案 1 :(得分:0)

如果你想导航那个JSON,那么最好的库就是imho,Jackson。结合a library of mine支持JSON Pointer,您可以执行以下操作:

final JsonNode node = JsonLoader.fromFile(...); // or .fromReader(), .fromString() etc
final JsonNode emails = JsonPointer.of("response", "emails")
    .get(node);
// etc

JsonNode对于导航JSON非常强大。