8

我需要使用从外部源接收到的字符串来实例化 JSONObject。该字符串包含一个日期时间值,该值又包含一个冒号。当我尝试创建 JSONObject 的实例时,出现错误,看起来 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]

有没有人遇到过这个?有什么办法可以逃脱结肠吗?

4

3 回答 3

3

如果您将日期/时间对象用双引号括起来,它应该接受它。

这应该有效:

String jsonStr = "{\"sDate\":\"2013-06-15T09:30:09+0000\"}";
于 2013-06-11T18:12:29.173 回答
2

字符串需要在 JSON 中引用

string
  ""
  " chars "

您的代码段无效,这就是引发异常的原因。您必须用双引号将字符串值括起来。

于 2013-06-11T18:19:46.133 回答
0

更有趣的问题是字符串未知的情况。如果格式已知,则修复起来相当容易。在此处作为实用程序添加到 org.json 。

于 2014-09-03T01:02:27.130 回答