我试图拆分一个字符串,并用它创建一个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"
}
等等。
我以前从未使用过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] 删除。
我来说两句