[英]How to split a string and create a json object in java?
我正在嘗試拆分一個字符串並用它創建一個 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"
}
等等。
創建一個具有屬性bookNumber
和uri
的 POJO 類並覆蓋 toString 方法,就像:
public class Book{
private String bookNumber;
private String uri;
//define a constructor with parameters
public Book(String bookNumber, String uri){
this.bookNumber = bookNumber;
this.uri=uri;
}
// define getters setters
// public String getBooknumber(..) etc.
@Override
public String toString(){
return "obj{bookNumber:" + "\"" + this.bookNumber + "\"" +", uri:"+ "\"" + this.uri }" ;
}
}
在你的類中創建一個 Book 類的實例並創建一個 JSONObject:
Book book = new Book("123214213", "http://www.sth.com");
JSONObject jsobject = new JSONObject(book.toString());
JSONArray jsonArray = new JSONArray();
jsonArray.put(jsobject);
//.....
我以前從未使用過 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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.