Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 这样的JSON字符串生成器存在吗?_Java_Json - Fatal编程技术网

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

我希望在Java中执行以下操作,并想知道是否已经存在这样一个JSON库/助手

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();