I can serialize a List<Video> in my servlet on GAE, but I can't deserialize it. What am I doing wrong?

这是我在GAE的课堂视频,它是序列化的:

package legiontube;

import java.util.Date;

import javax.jdo.annotations.IdGeneratorStrategy;
import javax.jdo.annotations.IdentityType;
import javax.jdo.annotations.PersistenceCapable;
import javax.jdo.annotations.Persistent;
import javax.jdo.annotations.PrimaryKey;

@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Video {

    @PrimaryKey
    private String id;

    @Persistent
    private String titulo;

    @Persistent
    private String descricao;

    @Persistent
    private Date date;

    public Video(){};

 public Video(String id, String titulo, String descricao, Date date) {
  //super();
  this.id = id;
  this.titulo = titulo;
  this.descricao = descricao;
  this.date = date;
 }

 public String getId() {
  return id;
 }

 public void setId(String id) {
  this.id = id;
 }

 public String getTitulo() {
  return titulo;
 }

 public void setTitulo(String titulo) {
  this.titulo = titulo;
 }

 public String getDescricao() {
  return descricao;
 }

 public void setDescricao(String descricao) {
  this.descricao = descricao;
 }

 public Date getDate() {
  return date;
 }

 public void setDate(Date date) {
  this.date = date;
 }

}

This is my class Video in my other application, where I try to deserialize:

package classes;

import java.util.Date;

public class Video {
 private String id;
 private String titulo;
 private String descricao;
 private Date date;

 public Video(String id, String titulo, String descricao, Date date) {
  //super();
  this.id = id;
  this.titulo = titulo;
  this.descricao = descricao;
  this.date = date;
 }

 public String getId() {
  return id;
 }
 public void setId(String id) {
  this.id = id;
 }
 public String getTitulo() {
  return titulo;
 }
 public void setTitulo(String titulo) {
  this.titulo = titulo;
 }
 public String getDescricao() {
  return descricao;
 }
 public void setDescricao(String descricao) {
  this.descricao = descricao;
 }
 public Date getDate() {
  return date;
 }
 public void setDate(Date date) {
  this.date = date;
 }

}

推荐答案

有了Gson,你只需要做以下事情:

List<Video> videos = gson.fromJson(json, new TypeToken<List<Video>>(){}.getType());

您可能还需要在反序列化到的Video类上提供一个无参数构造函数.

Json相关问答推荐

在Oracle中循环整个json_opp_t以更改特定键的值

给定一个包含两个数组的JSON输入文件,如何使用Jolt将一个数组中的每个元素与另一个数组组合在一起?

在Ruby的json中压缩单个字段

在Snowflake中查询JSON时,属性名称是否支持绑定参数?

Powershell ConvertFrom-Json 意外地从包含字符串的单个项目数组生成字符串而不是对象数组

PostgreSQL:删除 JSONB 数组中每个元素的特定键

(已回答)JSON 读取函数返回未定义而不是预期值 - Typescript

如何使用jq按键 Select 并获取整个json输出来更改json中的多个值

匹配来自不同数组的值

将请求中的数据推送到数组中

我需要在 mongodb compass 中检索索引(编号 1)信息

Vue 3如何将参数作为json发送到axios get

如何为包含一些固定值并可能具有其他附加值的数组字符串创建数组 json 架构

如何在生产环境中更改 Flutter 应用程序中的数据模型?

如何配置spring mvc 3在json响应中不返回null对象?

如何从 mysql 数据库构建 JSON 数组

Django:TypeError:[] 不是 JSON 可序列化的为什么?

如何使用 Javascript 将数据写入 JSON 文件

Javascript:如何判断 AJAX 响应是否为 JSON

jq:按属性分组和键