如何在Java中拆分字符串并创建json对象?

Shimu

我试图拆分一个字符串,并用它创建一个json对象。但是以某种方式我无法创建json对象。Json对象“ objectBuilder”未获取值。请帮忙。

我的书号如下:“ bookNo”:“ 120,130,140”。在这里bookNo可以更改,并带有2个或更多值。这些书号,我是从数据库中获得的。而且我无法更改Json API。它应该是javax.json api。

    for(BookTerm dataTable:list){
        URL url1 = new URL("http://books.google.com/type/");
        JsonObjectBuilder objectBuilder = Json.createObjectBuilder();
        String uriAdd = dataTable.getBookNo().toString();
        String[] uriLink = uriAdd.split(", ");
        int i = 0;
        String uriLink1 = null;
           if(uriLink != null){
               while (i< uriLink.length){
                   uriLink1 = uriLink[i];
                   URL url2 = new URL(url1.getProtocol(), url1.getHost(), url1.getPort(), url1.getPath() + uriLink1, null);
                   uriAdd1 = url2.toString();
                   i++;
                   objectBuilder.add("bookNumber", uriLink1)
                      .add("uri", uriAdd1).build();
               }
           }
    }

输出将是:

    {
         "bookNumber":"120",
         "uri":"http://books.google.com/type/120"
    },
    {
         "bookNumber":"130",
         "uri":"http://books.google.com/type/130"
    }

等等。

克里斯托弗·阿尔托纳(Christopher Altona)

我以前从未使用过JsonObjectBuilder,但似乎您从未保存过对构建器使用.build()在该行上创建的JsonObject的引用。此外,您一直在向构建器的对象不断添加相同的键,而每次都只需覆盖它即可。您要创建一个ArrayBuilder并在其中包含多个ObjectBuilder,如下所示:

JsonBuilderFactory factory = Json.createBuilderFactory();
JsonObject value = factory.createArrayBuilder();

while(haveObjects) {
   value.add(Json.createObjectBuilder().add("bookNumber", uriLink1).add("uri", uriAdd1).build());
}
// writer will be constructed with some sort of output, and this will write the JSON value to it.
JsonWriter writer = Json.createWriter();
writer.write(value);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章