Java 这样的JSON字符串生成器存在吗?
我希望在Java中执行以下操作,并想知道是否已经存在这样一个JSON库/助手Java 这样的JSON字符串生成器存在吗?,java,json,Java,Json,我希望在Java中执行以下操作,并想知道是否已经存在这样一个JSON库/助手 SomeJsonBuilder builder = new SomeJsonBuilder(); builder.add("one", "oneValue"); builder.add("two.three", "threeValue"); String output = builder.toString(); 这样,上面的输出字符串类似于: {"one":"oneValue", "two":{"three":"th
SomeJsonBuilder builder = new SomeJsonBuilder();
builder.add("one", "oneValue");
builder.add("two.three", "threeValue");
String output = builder.toString();
这样,上面的输出字符串类似于:
{"one":"oneValue", "two":{"three":"threeValue"}}
不简单,但我会结合JAXB、Jackson和BeanUtils 这里有一部分 这是另一个。。。
这就是你要找的吗 你检查过了吗?但它并不能完全满足你的需求。但它很接近。我意识到这是一个老问题,但我已经实现了一个非常简单的方法,作为我项目的一部分,它可以很容易地移植。Elasticsearch有一个非常好的流畅JSON构建器;不幸的是,据我所知,它不是一个模块,而是elasticsearch代码库的一部分,所以如果没有elasticsearch,它不容易使用
请参见示例:这有点晚,但我的jsonj库是为这个用例设计的
我使用了几种静态方法,可以静态导入。生成器方法是polymorph,并使用varargs。JsonObject、JsonArray、JsonSet和JsonPrimitive的行为正常,并且还支持泛型 刚刚遇到您的问题,我相信这是一个更标准的选择:
用法示例:我不同意的副本。。。这个问题是关于JSON库的一般性问题。这篇文章非常具体(虽然我会用
builder.add(“一”、“一个值”);builder.add(“二、三”、“三个值”);
oops,是的,你说得对,杰森。在我匆忙写这篇文章的过程中,我犯了那个错误。谢谢你的提醒。“二、三”是JSON对象中的有效键。并非JSON中的每个集合都是对象。我不希望JSON生成器不允许我使用数组或带虚线名称的对象。JSON库的流体接口:builder.key(“two”).object().key(“three”).value(“threeValue”).endObject()
看起来也没那么麻烦。说得好-谢谢。将点(.)替换为冒号(:)绕开它?我已经看过那里的类了,但我认为我没有看到一个类接受我想要的那种符号。它们似乎都想在串之前构建对象。理想情况下,我想要一个实用程序,它接受我在帖子中提到的符号(我已经有了这个实用程序,但如果有一个已经过良好测试和使用的工具,当然会很好)Maven坐标:org.json:json
。映射函数可能是最接近的。谢谢忍者!
JsonObject o=object(
field("aList",array(
1,
2,
object(field("meaningoflife",42)),
"no more builder"))
),
field("another", "element"),
field("aSet",set(1,2,3),
field("nestedlists",array(
array(1,2),
array(3,4)
))
);
String json=o.toString();