Java 在jsp中的Gson中设置日期格式

Java 在jsp中的Gson中设置日期格式,java,json,gson,date-format,Java,Json,Gson,Date Format,我使用Gson将Json转换为Java中的对象。我试图转换的Json具有非常复杂的结构 { "name": "0", "dtExpiration": "07/14/2011 00:00", "quotaList": null, "question_array": [ { "question": "0", "questionType": "resposta de texto", "min": "null",

我使用Gson将Json转换为Java中的对象。我试图转换的Json具有非常复杂的结构

{
   "name": "0",
   "dtExpiration": "07/14/2011 00:00",
   "quotaList": null,
   "question_array": [
      {
         "question": "0",
         "questionType": "resposta de texto",
         "min": "null",
         "max": "null",
         "responceList": [],
         "answer_array": [
            {
...
1.问题是:gson.fromJsonjson、SuperClass.class会工作吗,因为这个类有ArrayList

我看不出它是否有效,因为我的日期格式有问题。程序引发异常:

Caused by: java.text.ParseException: Unparseable date: "07/15/2011 00:00"
因此,我尝试使用以下方法指定格式:

GsonBuilder gson = new GsonBuilder().setDateFormat("mm/dd/yyyy hh:mm");
但结果是一样的

2.您能解释一下如何使用GsonBuilder更改日期格式吗

多谢各位

1.问题是:gson.fromJsonjson、SuperClass.class会工作吗,因为这个类有ArrayList

可以,前提是超类结构与JSON结构匹配

{
   "name": "0",
   "dtExpiration": "07/14/2011 00:00",
   "quotaList": null,
   "question_array": [
      {
         "question": "0",
         "questionType": "resposta de texto",
         "min": "null",
         "max": "null",
         "responceList": [],
         "answer_array": [
            {
...
2.您能解释一下如何使用GsonBuilder更改日期格式吗

使用大M表示一年中的月份。小m代表小时中的分钟

这里有一个有效的例子

import java.io.FileReader;
import java.util.Date;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Foo
{
  public static void main(String[] args) throws Exception
  {
    Gson gson = new GsonBuilder().setDateFormat("MM/dd/yyyy hh:mm").create();

    SuperClass sc = gson.fromJson(new FileReader("input.json"), SuperClass.class);
    System.out.println(gson.toJson(sc));
    // {"name":"0","dtExpiration":"07/14/2011 12:00","question_array":[{"question":0,"questionType":"resposta de texto","min":"null","max":"null","responceList":[],"answer_array":[{"id":1,"answer":"yes"},{"id":2,"answer":"no"}]}]}
  }
}

class SuperClass
{
  String name;
  Date dtExpiration;
  List<String> quotaList;
  Question[] question_array;
}

class Question
{
  int question;
  String questionType;
  String min;
  String max;
  List<String> responceList;
  Answer[] answer_array;
}

class Answer
{
  int id;
  String answer;
}
请注意,在我的系统上,它从24小时时钟显示更改为12小时时钟显示

1.问题是:gson.fromJsonjson、SuperClass.class会工作吗,因为这个类有ArrayList

可以,前提是超类结构与JSON结构匹配

{
   "name": "0",
   "dtExpiration": "07/14/2011 00:00",
   "quotaList": null,
   "question_array": [
      {
         "question": "0",
         "questionType": "resposta de texto",
         "min": "null",
         "max": "null",
         "responceList": [],
         "answer_array": [
            {
...
2.您能解释一下如何使用GsonBuilder更改日期格式吗

使用大M表示一年中的月份。小m代表小时中的分钟

这里有一个有效的例子

import java.io.FileReader;
import java.util.Date;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

public class Foo
{
  public static void main(String[] args) throws Exception
  {
    Gson gson = new GsonBuilder().setDateFormat("MM/dd/yyyy hh:mm").create();

    SuperClass sc = gson.fromJson(new FileReader("input.json"), SuperClass.class);
    System.out.println(gson.toJson(sc));
    // {"name":"0","dtExpiration":"07/14/2011 12:00","question_array":[{"question":0,"questionType":"resposta de texto","min":"null","max":"null","responceList":[],"answer_array":[{"id":1,"answer":"yes"},{"id":2,"answer":"no"}]}]}
  }
}

class SuperClass
{
  String name;
  Date dtExpiration;
  List<String> quotaList;
  Question[] question_array;
}

class Question
{
  int question;
  String questionType;
  String min;
  String max;
  List<String> responceList;
  Answer[] answer_array;
}

class Answer
{
  int id;
  String answer;
}

请注意,在我的系统上,它从24小时时钟显示更改为12小时时钟显示。

我已经更改了它,但得到了相同的异常!我做得对吗:首先,我正在创建Gson对象,然后这次使用m设置上面指定的日期格式,然后尝试转换json?非常感谢!我就快到了。。当我在做Gson-Gson=new-GsonBuilder时,是否得到了不兼容的类型错误?我已经更改了它,但得到了相同的异常!我做得对吗:首先,我正在创建Gson对象,然后这次使用m设置上面指定的日期格式,然后尝试转换json?非常感谢!我就快到了。。当我在做Gson-Gson=new-GsonBuilder时,是否得到了不兼容的类型错误