2

我有一个像 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;

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

谢谢你。

4

2 回答 2

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/ 如果您需要一些简单的东西,只需将所有内容解码为地图,那么您就在这里。

于 2013-07-04T07:52:17.047 回答
0

如果你想浏览那个 JSON,最好的库是,imho,Jackson。结合我的一个库,它支持JSON 指针,你可以做这样的事情:

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

JsonNode对于导航 JSON 来说非常强大。

于 2013-07-04T07:51:27.727 回答