【问题标题】:WebService Get JsonWeb服务获取Json
【发布时间】:2018-11-14 23:27:21
【问题描述】:

我有问题, 我想做一个网络服务来获取 Json。

我的 json 是这样的:

[{"id":"test","prix":"0,76"},{"id":"test2","prix":"0,76"},{"id":"BODOUR","prix":"0,76"}]

还有我的代码:

    @GetMapping(value="/setup/tarif/getTarifElectricity")
public JSONArray getTarifGrid() throws IOException, SAXException {

    String filePath = Common.filePathData("setup.tarif", "tarif.txt");
    byte[] bytes = Files.readAllBytes(Paths.get(filePath));
    String tarifGrid = new String(bytes,"UTF-8");
    JSONArray jsonArr = new JSONArray(tarifGrid);
    System.out.println(jsonArr.toString());
    return jsonArr;
}

但是当我想测试我的网络服务时,我的结果是:

{"empty": false}

localhost:8080/setup/tarif/getTarifElectricity on chrome display {"empty":false} 而不是我的 JsonArray

我的 SYSOUT 还给我:

[{"prix":"0,76","id":"test"},{"prix":"0,76","id":"test2"},{"prix":"0,76","id":"BODOUR"}]

谢谢

【问题讨论】:

  • 您的 SYSOUT 看起来不错。不清楚“我的导航器”是什么意思
  • localhost:8080/setup/tarif/getTarifElectricity 在 chrome 显示器上 {"empty":false} 而不是我的 JsonArray
  • 您是否重新编译了代码并重新启动了 Web 服务器?

标签: java json rest


【解决方案1】:

您是否已经尝试从该方法返回一个字符串?我的意思是:

return jsonArr.toString();

在我看来,原因是 JSONArray 对象只包含它是否为空的信息。所以杰克逊只用这个信息映射这个对象的 JSON 表示。但如果你想获取所有需要的数据,请使用jsonArr.toString();

【讨论】:

  • 方法的返回类型不是字符串
  • 尝试将方法的返回类型设置为字符串。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多