如何将Edn字符串转换为Json

4

我需要从一些返回edn主体响应的站点检索数据。 我正试图将返回的Edn转换为Json,以便可以使用Jsoup解析它。

我找到了一个网站,可以进行转换,但是我该如何在Java中实现类似的功能呢?

我尝试了类似于以下代码,但它没有完全成功:

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

有没有一种方法可以不使用闭包来实现这个?

这个回答解决了你的问题吗?如何使用Cheshire自定义编码器将EDN输出以JSON格式打印 - JoSSte
@JoSSte 我希望能够使用纯Java代码方法。我对闭包一无所知。 - Rafat Rifaie
类似 https://github.com/mikera/edn-pojos 这样的与编程有关的内容是什么? - JoSSte
1个回答

1
你可以使用类似于edn-java的库在Java中解析EDN数据。

示例用法:

@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找到。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接