簡體   English   中英

如何在java中拆分字符串並創建一個json對象?

[英]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"
    }

等等。

創建一個具有屬性bookNumberuri的 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM