我正在使用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更改日期格式吗?
谢谢
答案 0 :(得分:4)
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;
}
请注意,在我的系统上,它从24小时时钟显示变为12小时时钟显示。