java - 如何将 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;
}
有没有办法在不使用闭包的情况下做到这一点?
解决方案
您可以使用类似的库来解析 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获得
推荐阅读
- vbscript - 第一次尝试编码,但文件位置失败
- php - 使用 Docker 运行 cronjobs 时应该使用 docker exec 吗?
- java - 每个客户端都有子缓存的 Java 内存缓存
- unit-testing - 反应织物下拉单元测试
- html - 需要 Web 开发人员的帮助
- javascript - 使用 toJSON 进行字符串化时出现 Lodash deepClone 问题
- javascript - 收到的道具在反应本机导航中未定义
- unity3d - Unity 2018.3:如何在整个 3D 模型的一部分上应用纹理?
- python - 解码使用 CP437 表编码的文件
- android - Android,如何合并两个视频文件?