【问题标题】:set date format in Gson in jsp在jsp中的Gson中设置日期格式
【发布时间】:2011-10-05 11:33:46
【问题描述】:

我正在使用 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.fromJson(json, SuperClass.class) 会工作吗,因为这个类有ArrayLists?

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

Caused by: java.text.ParseException: Unparseable date: "07/15/2011 00:00"

所以我试图通过使用来指定格式:

GsonBuilder gson = new GsonBuilder().setDateFormat("mm/dd/yyyy hh:mm");

但结果是一样的。

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

谢谢

【问题讨论】:

标签: java json gson date-format


【解决方案1】:

1.问题是:gson.fromJson(json, SuperClass.class) 会工作吗,因为这个类有ArrayLists?

是的,只要 SuperClass 结构与 JSON 结构匹配。

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;
}

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

【讨论】:

  • 我已经改变了它,但得到了同样的例外!我做得对吗:第一次我正在创建 Gson 对象,然后按照上面指定的方式设置日期格式(这次使用“M”),然后尝试转换 json?
  • 非常感谢!我快到了.. 当我在做 Gson gson = new GsonBuilder() 时,出现不兼容类型错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-15
  • 1970-01-01
  • 1970-01-01
  • 2017-03-09
  • 1970-01-01
相关资源
最近更新 更多