首页 > 解决方案 > 如何将 Edn 字符串转换为 Json

问题描述

我必须从一些用edn body发回响应的站点检索数据。我正在尝试将发回的Edn转换为Json,以便我可以使用 Jsoup 对其进行解析。

我找到了一个能够进行转换的网站,但是如何在java中实现类似的东西?

我尝试了这样的事情,但它并没有完成工作:

public static String edmToJson(String edm) {
    String json = edm;
    json = json.replaceFirst("(\\(\\{).*?(}\\))", "1").replace("(", "").replace("})", "").replace("} {", "},{");
    return json;
}

有没有办法在不使用闭包的情况下做到这一点?

标签: javajsonedn

解决方案


您可以使用类似的库来解析 Java 中的 EDN 数据edn-java

示例用法:

@Test
public void simpleUsageExample() throws IOException {
    Parseable pbr = Parsers.newParseable("{:x 1, :y 2}");
    Parser p = Parsers.newParser(defaultConfiguration());
    Map<?, ?> m = (Map<?, ?>) p.nextValue(pbr);
    assertEquals(m.get(newKeyword("x")), 1L);
    assertEquals(m.get(newKeyword("y")), 2L);
    assertEquals(Parser.END_OF_INPUT, p.nextValue(pbr));
}

完整的文档可在edn-java获得


推荐阅读