java - 使用 GSON 解析 JSON 返回 null

标签 java android json gson

这是我的 Json:

[
{
"canaldsc":"PHARMA",
"cadenadsc":null,
"formatodsc":"DEL AHORRO",
"estadodsc":null,
"ciudaddsc":"VALLE DE MEXICO",
"regiondsc":"CENTRO SUR",
"proyectotiendaid":null,
"proyectoid":"79",
"planid":"54",
"proyectodsc":"Concurso",
"vigencia":"0000-00-00",
"activo":"1",
"usuarioproyectotiendaid":"65280",
"proyecto":null,
"fechainicio":"2014-03-24",
"lunes":"7",
"martes":"7",
"miercoles":"7",
"jueves":"7",
"viernes":"7",
"sabado":"7",
"domingo":"7"
},
{
"canaldsc":"PHARMA",
"cadenadsc":null,
"formatodsc":"DEL AHORRO",
"estadodsc":null,
"ciudaddsc":"VALLE DE MEXICO",
"regiondsc":"CENTRO SUR",
"proyectotiendaid":null,
"proyectoid":"79",
"planid":"54",
"proyectodsc":"Concurso",
"vigencia":"0000-00-00",
"activo":"1",
"usuarioproyectotiendaid":"65284",
"proyecto":null,
"fechainicio":"2014-03-24",
"lunes":"7",
"martes":"7",
"miercoles":"7",
"jueves":"7",
"viernes":"7",
"sabado":"7",
"domingo":"7"
}
]

实际上,有超过 2 个对象,但我将其剪切以简化

我的模型类:

public class PdvResult {
public PdvResult() {
}

public String canaldsc;
public String cadenadsc;
public String formatodsc;
public String estadodsc;
public String ciudaddsc;
public String regiondsc;
public String proyectotiendaid;
public String proyectoid;
public String planid;
public String proyectodsc;
public String vigencia;
public String activo;
public String usuarioproyectotiendaid;
public String proyecto;
public String fechainicio;
public String lunes;
public String martes;
public String miercoles;
public String jueves;
public String viernes;
public String sabado;
public String domingo;
}

名称应该对应,以便可以进行映射。

在我的 Java 中,我使用

List<PdvResult> pdvs = (List<PdvResult>)gson.fromJson(reader, new TypeToken<PdvResult>() {}.getType());

但是 pdvs 返回 null。

我的代码有什么问题???

最佳答案

更改解析 JSON 的行,使用以下内容:

List<PdvResult> pdvs = gson.fromJson(reader, new TypeToken<List<PdvResult>>() {}.getType());

您正在使用TypeToken<PdvResult> ,并且您必须使用 TypeToken<List<PdvResult>> ,否则您将尝试将 JSON 解析为 PdvResult对象,而您实际上有一个 PdvResult 数组对象!

关于java - 使用 GSON 解析 JSON 返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22720966/

相关文章:

java - AWS EC2 将无法使用静态访问凭证连接到 DynamoDB

php - 即使通过我的 PHP 脚本获得成功 1 后也无法在 android 中发送推送通知

c# - JSON 无法将 JSON 数组反序列化为类型

java - 多线程写入文本文件

java - Lockstep在编程中是什么意思?

java - 确保java方法是线程安全的

android - 将 base64 编码的字符串存储为文件

Android NFC,在onCreate 中做空检查?

xml - 如何将 NSArray 或 NSDictionary 保存到 JSON 文件?

mysql - mysql json 中的复杂正则表达式