gpt4 book ai didi

java - GSON JSON 解析字符串与 POJO

转载 作者:行者123 更新时间:2023-12-02 10:56:53 26 4
gpt4 key购买 nike

奇怪的实例,其中 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}}]] json 的格式是否适合您的 List<List<Alpha>>对象,然后序列化文字字符串 [[{readerme:{dumbme:meme}}]] ,不会。

使用字符串调用 gson.ToJson,将输出 json 格式的字符串。实际上,您的字符串 [[{readerme:{dumbme:meme}}]]将变成"[[{readerme:{dumbme:meme}}]]" 。请注意添加的引号。我想打印json的内容控制台的变量将帮助您理解我的意思。

由于此输出字符串是用 json 表示的字符串,因此它不再是 List<List<Alpha>> 的正确方案。

关于java - GSON JSON 解析字符串与 POJO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51661048/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com