5
我把這個字符串解析成一個Javascript對象。字符串解析,JSON字符串化和GSON解析日期失敗
{
"startTime": 233432420233,
"endTime": 233432431000,
"bufferingDelays": [
{
"time": 233432420233,
"delayLength": 100
},
{
"time": 233432420433,
"delayLength": 50
},
{
"time": 233432420833,
"delayLength": 75
}
]
}
這裏是Javascript代碼做解析,然後轉換爲一個JSON字符串:
var reportObject = jQuery.parseJSON(reportJSONString);
reportObject.startTime = new Date(reportObject.startTime);
reportObject.endTime = new Date(reportObject.endTime);
for (var i = 0; i < reportObject.bufferingDelays.length; i++)
{
var delay = reportObject.bufferingDelays[i];
delay.time = new Date(delay.time);
reportObject.bufferingDelays[i] = delay;
}
var reportObjectFinalString = JSON.stringify(reportObject);
一個由JSON的轉換產生的日期是這樣的:1977-05-25T18:20:20.233Z
。我認爲最後的'Z'是不好的。
現在,我嘗試將其解析爲一個Java對象,像這樣:
Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").create();
Report report = gson.fromJson(jsonBuilder.toString(), Report.class);
但我得到這個異常:
SEVERE: Servlet.service() for servlet [ReportServlet] in context with path [/Report] threw exception [com.google.gson.JsonSyntaxException: 1977-05-25T18:20:20.233Z] with root cause
java.text.ParseException: Unparseable date: "1977-05-25T18:20:20.233Z"
非常感謝。將標記爲已回答。 –
@Guido不客氣! –