我希望在Java中执行类似下面的操作,并且想知道某个JSON库/帮助程序是否已存在于某处?
SomeJsonBuilder builder = new SomeJsonBuilder();
builder.add("one", "oneValue");
builder.add("two.three", "threeValue");
String output = builder.toString();
这样输出字符串就像是:
{"one":"oneValue", "two":{"three":"threeValue"}}
答案 0 :(得分:3)
您检查了JSONLib吗?它并没有完全符合您的要求。但它很接近。
答案 1 :(得分:2)
这是你要找的吗? http://www.json.org/java/
答案 2 :(得分:1)
不是直截了当,但我将JAXB,Jackson和BeanUtils结合起来。
这是一部分 http://ondra.zizka.cz/stranky/programovani/java/jaxb-json-jackson-howto.texy
这是另一个...... http://commons.apache.org/beanutils/api/org/apache/commons/beanutils/expression/DefaultResolver.html
答案 3 :(得分:1)
刚刚遇到您的问题,我认为这是一个更标准的选项:https://jsonp.java.net/download.html 用法示例:http://docs.oracle.com/javaee/7/api/javax/json/JsonObjectBuilder.html
答案 4 :(得分:0)
我意识到这是一个较旧的问题,但我已经实现了一个非常简单的JSON String Builder in C#作为我的Fluent Flot项目的一部分,可以很容易移植。
答案 5 :(得分:0)
Elasticsearch有一个非常好的流畅的JSON构建器;不幸的是,据我所知,它不是一个模块,而是弹性搜索代码库的一部分,所以没有弹性搜索它就不容易使用。
参见示例:http://www.elasticsearch.org/guide/reference/java-api/index_.html
答案 6 :(得分:0)
有点晚了,但我的jsonj库是为这个用例而设计的。
https://github.com/jillesvangurp/jsonj
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();
我使用了几种可以静态导入的静态方法。构建器方法是多态的,并使用varargs。 JsonObject,JsonArray,JsonSet和JsonPrimitive也以理智的方式运行并支持泛型。