2013-09-27 8 views
5

मैं यह स्ट्रिंग लेता हूं और इसे जावास्क्रिप्ट ऑब्जेक्ट में पार्स करता हूं। 1977-05-25T18:20:20.233Z:स्ट्रिंग पार्स, जेएसओएन स्ट्रिंगिफ़ और जीएसओएन पार्स तिथि की विफलता

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 रूपांतरण द्वारा निर्मित दिनांक से एक यह है:

{ 
"startTime": 233432420233, 
"endTime": 233432431000, 
"bufferingDelays": [ 
    { 
     "time": 233432420233, 
     "delayLength": 100 
    }, 
    { 
     "time": 233432420433, 
     "delayLength": 50 
    }, 
    { 
     "time": 233432420833, 
     "delayLength": 75 
    } 
    ] 
} 

यहाँ पार्स JSON स्ट्रिंग के लिए रूपांतरण के बाद कर जावास्क्रिप्ट कोड है। मुझे लगता है कि पिछला 'जेड' खराब है।

अब जावा में मैं बहुत की तरह एक जावा वस्तु में पार्स करने का प्रयास:

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" 

उत्तर

10

आप Z भी

Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").create(); 
उद्धृत करने के लिए की जरूरत है

SimpleDateFormat (GsonBuilder में उपयोग किया गया) unquoted 0 लेता हैएक समय क्षेत्र का अर्थ है जो आपकी दिनांक स्ट्रिंग नहीं है।

+0

बहुत धन्यवाद। उत्तर के रूप में चिह्नित करेंगे। –

+1

@ गुइडो आपका स्वागत है! –

संबंधित मुद्दे