簡體   English   中英

使用GSON將JSONArray設置為POJO類中的String

[英]Set JSONArray into String in POJO class using GSON

我有一個jsonarray,為此我創建了pojo類。 現在,我想將jsonarray設置為一個字符串。 當我這樣做時,它會拋出錯誤的The JsonDeserializer StringTypeAdapter failed to deserialize json object given the type class java.lang.String 這個問題有所不同,因為我想將jsonarray設置為String所以,任何人都有任何想法?

Gson.toJson()返回一個String ..

所以..

String myArrayAsAString = gsonInstance.toJson(myJsonArray);

你是這個意思嗎?

你可以設置方法uself。 公共類BookDeserializer實現JsonDeserializer {

@Override
public Book deserialize(final JsonElement json, final Type typeOfT, final JsonDeserializationContext context)
  throws JsonParseException {
final JsonObject jsonObject = json.getAsJsonObject();

final JsonElement jsonTitle = jsonObject.get("title");
final String title = jsonTitle.getAsString();

final String isbn10 = jsonObject.get("isbn-10").getAsString();
final String isbn13 = jsonObject.get("isbn-13").getAsString();

final JsonArray jsonAuthorsArray = jsonObject.get("authors").getAsJsonArray();
final String[] authors = new String[jsonAuthorsArray.size()];
for (int i = 0; i < authors.length; i++) {
  final JsonElement jsonAuthor = jsonAuthorsArray.get(i);
  authors[i] = jsonAuthor.getAsString();
}

final Book book = new Book();
book.setTitle(title);
book.setIsbn10(isbn10);
book.setIsbn13(isbn13);
book.setAuthors(authors);
return book;
}
}    

http://www.javacreed.com/gson-deserialiser-example/

假設您有一個productInfo數組:

List<ProductInfo> productInfos = new ArrayList<>();
// fill your productInfos, etc.

然后你想獲得productInfos'JsonArray的String表示:

JsonArray productInfoJsonArray = (JsonArray) new Gson().toJsonTree(productInfos,
            new TypeToken<List<ProductInfo>>() {
            }.getType());

productInfoJsonArray.getAsString();

我不完全確定你想要實現的目標,但我希望上面的代碼片段有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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