需要一种真正简单的方法来读取java中的json值

时间:2014-11-01 15:02:59

标签: java json

我目前正在用Java编写应用程序,并且正在努力从一个JSON格式的String中提取值。

有人可以用最简单,最简单的方法从这个字符串中提取数据吗?如果可能的话,我宁愿不使用外部库。

{"exchange":{"status":"Enabled","message":"Broadband on Fibre Technology","exchange_code":"NIWBY","exchange_name":"WHITEABBEY"},"products":[{"name":"20CN ADSL Max","likely_down_speed":1.5,"likely_up_speed":0.15,"availability":true....

有人可以解释一下如何返回“20CN ADSL Max”的“可能的降速”吗?

由于

3 个答案:

答案 0 :(得分:0)

当然,您可以自行进行解析,但如果您依赖现有的库org.json,它会更快。

通过它,您可以轻松地将字符串转换为JSON对象并提取所需的所有字段。

如果现有库不是一个选项,您需要自己构建描述该对象的树,以便提取对键值

答案 1 :(得分:0)

目前,Java没有办法在没有外部库(或您自己的实现)的情况下解析json。

使用JSON时,org.json库是标准。

您可以将此代码段与库一起使用,以实现您的要求:

JSONObject obj = new JSONObject(" .... ");
JSONArray arr = obj.getJSONArray("products");
for (int i = 0; i < arr.length(); i++) {
    String name = arr.getJSONObject(i).getString("name");
    if ( name.equals("20CN ADSL Max") ) {
        String s =  arr.getJSONObject(i).getString("likely down speed");
    }
}

希望这有帮助。

答案 2 :(得分:0)

虽然这可能看起来像一个非常简单,直截了当的任务,但却相当复杂。

查看SO线程How to parse JSON in Java。遗憾的是,该线程中显示的问题没有一个明确的解决方案。但我想org.json库似乎是最受欢迎的解决方案。

如果您的应用程序需要处理任意JSON,我建议您不要尝试构建自己的解析器。

无论您对使用外部库有什么异议,都要克服它们。