[英]GSON JSON Parsing String versus POJO
gson
解析器可以將JSON字符串解析為String
,但無法將該JSON字符串解析為其表示的原始對象的奇怪實例。
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import java.util.ArrayList;
public class Reader {
public class Beta {
String beta1;
@Override
public String toString() {
return "{ beta1: " + this.beta1 + "}";
}
}
public class Alpha {
Beta beta;
@Override
public String toString() {
return "{" + "beta: " + beta.toString() + "}";
}
}
public static void main(String[] args) {
Gson gson = new Gson();
String example1 = "[[{beta:{beta1:beta2}}]]";
String json = gson.toJson(example1);
// this throws an error
ArrayList<ArrayList<Alpha>> dog = gson.fromJson(json, new TypeToken<ArrayList<ArrayList<Alpha>>>(){}.getType());
// this does not
ArrayList<ArrayList<Alpha>> dog1 = gson.fromJson("[[{beta:{beta1:beta2}}]]", new TypeToken<ArrayList<ArrayList<Alpha>>>(){}.getType());
}
}
如果[[{readerme:{dumbme:meme}}]]
是適用於List<List<Alpha>>
對象的正確格式的json,則序列化文字字符串[[{readerme:{dumbme:meme}}]]
,不會是。
使用字符串調用gson.ToJson將以json格式輸出字符串。 實際上,您的字符串[[{readerme:{dumbme:meme}}]]
將變成"[[{readerme:{dumbme:meme}}]]"
。 請注意添加的引號。 我認為將json
變量的內容打印到控制台將幫助您理解我的意思。
由於此輸出字符串是用json表示的字符串,因此它不再是List<List<Alpha>>
的正確方案
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.