【问题标题】:Java parsing from escaped json stringJava 从转义的 json 字符串中解析
【发布时间】:2018-05-03 21:17:15
【问题描述】:

与此相关的线程很多,但我无法解决我的问题。

我通过使用 GSON 解析一个可迭代对象得到这个字符串。

Iterable<ParametrosProveedores> proveedoresList;

proveedoresList = proveedoresRepository.findAll(); //From spring repository

String jsonString = gson.toJson(proveedoresList);

jsonString 值为:

[{\"id\":1,\"proveedor\":\"CALIXTA\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"todas\",\"plazasNo\":\"\",\"turnoUnaVia\":false,\"turnoDosVias\":false},{\"id\":2,\"proveedor\":\"MOVILE\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"51,52\",\"plazasNo\":\"\",\"turnoUnaVia\":false,\"turnoDosVias\":false},{\"id\":3,\"proveedor\":\"TWILIO\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"todas\",\"plazasNo\":\"51\",\"turnoUnaVia\":false,\"turnoDosVias\":false},{\"id\":4,\"proveedor\":\"OTRO\",\"unaVia\":true,\"dosVias\":true,\"plazasSi\":\"todas\",\"plazasNo\":\"\",\"turnoUnaVia\":false,\"turnoDosVias\":false}]

这是一个json数组。真的没有办法在不手动删除转义符的情况下解析该字符串吗?

我想做的就是:

JSONArray jsonArray = parseFrom(jsonString);

有可能吗?

【问题讨论】:

  • Gson.fromJson(String, Class)?
  • ParametrosProveedores[] data = gson.fromJson(jElement, ParametrosProveedores[].class);
  • jsonString.replace("\\", ""); 将用我认为的任何内容替换所有转义字符,这比您说的手动执行要好

标签: java arrays json gson


【解决方案1】:

由于您使用Iterable&lt;T&gt; 形式的泛型,您可能需要使用:

String jsonString = gson.toJson(proveedoresList, typeOfSrc);

其中typeOfSrc 是您的proveedoresList 的类型。这样gson 就知道如何正确序列化对象了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-18
    • 2015-04-30
    • 2020-02-05
    • 1970-01-01
    • 2012-08-06
    • 2013-09-24
    • 2010-10-25
    相关资源
    最近更新 更多