2013-06-11 130 views
5

我需要使用從外部源接收的字符串實例化JSONObject。該字符串包含一個日期時間值,該值又包含一個冒號。 當我嘗試創建JSONObject的實例時,出現錯誤,它看起來像JSON不喜歡日期時間值中間的冒號。如何在JSON字符串中的日期時間值內冒號冒號

下面的代碼片段:

@Test 
public void testGetDate() 
{ 
    String jsonStr = "{\"sDate\":2013-06-15T09:30:09+0000}"; 
    try 
    { 
     JSONObject jsonObject = new JSONObject(jsonStr); 
     System.out.println(jsonObject.get("sDate")); 

    } catch (JSONException e) 
    { 
     e.printStackTrace(); 
    } 
} 

我得到的錯誤是:

org.json.JSONException: Expected a ',' or '}' at 23 [character 24 line 1] 

有沒有人遇到過嗎?有沒有辦法避開冒號?

回答

2

如果用雙引號括住日期/時間對象,它應該接受它。

這應該工作:

String jsonStr = "{\"sDate\":\"2013-06-15T09:30:09+0000\"}"; 
+0

確實有效。謝謝! – user2475664

1

字符串是required to be quoted in JSON

string 
    "" 
    " chars " 

您的片段是無效的,這就是爲什麼拋出異常。您必須用雙引號括住字符串值。

0

更有趣的問題是字符串未知的情況。如果格式已知,則很容易修復。作爲工具添加到org.json here

相關問題