使用AngularJS解析JSON日期时间

使用AngularJS解析JSON日期时间,angularjs,json,spring,rest,Angularjs,Json,Spring,Rest,我有一个简单的SpringMVC应用程序,它接受POST、GET和DELETE请求。 在前端,我有一个简单的JSP页面,它正在导入AngularJS库并尝试解析传入的JSON。我用Jackson序列化了JSON。 下面是来自我的Spring MVC应用程序的JSON响应,我希望通过ng bind获得它,如下所示: 我的JSON日期时间是这样的: { "dayOfMonth": 12, "year": 2000, "dayOfWeek": 2, "era": 1, "day

我有一个简单的SpringMVC应用程序,它接受POST、GET和DELETE请求。 在前端,我有一个简单的JSP页面,它正在导入AngularJS库并尝试解析传入的JSON。我用Jackson序列化了JSON。 下面是来自我的Spring MVC应用程序的JSON响应,我希望通过
ng bind
获得它,如下所示:


我的JSON日期时间是这样的:

{
  "dayOfMonth": 12,
  "year": 2000,
  "dayOfWeek": 2,
  "era": 1,
  "dayOfYear": 347,
  "chronology": {
    "zone": {
      "fixed": true,
      "id": "UTC"
    }
  },
  "yearOfEra": 2000,
  "centuryOfEra": 20,
  "yearOfCentury": 0,
  "monthOfYear": 12,
  "weekyear": 2000,
  "weekOfWeekyear": 50,
  "fields": [
    {
      "lenient": false,
      "minimumValue": -292275054,
      "maximumValue": 292278993,
      "rangeDurationField": null,
      "leapDurationField": {
        "unitMillis": 86400000,
        "precise": true,
        "name": "days",
        "type": {
          "name": "days"
        },
        "supported": true
      },
      "durationField": {
        "unitMillis": 31556952000,
        "precise": false,
        "name": "years",
        "type": {
          "name": "years"
        },
        "supported": true
      },
      "name": "year",
      "type": {
        "durationType": {
          "name": "years"
        },
        "rangeDurationType": null,
        "name": "year"
      },
      "supported": true
    },
    {
      "lenient": false,
      "minimumValue": 1,
      "maximumValue": 12,
      "rangeDurationField": {
        "unitMillis": 31556952000,
        "precise": false,
        "name": "years",
        "type": {
          "name": "years"
        },
        "supported": true
      },
      "leapDurationField": {
        "unitMillis": 86400000,
        "precise": true,
        "name": "days",
        "type": {
          "name": "days"
        },
        "supported": true
      },
      "durationField": {
        "unitMillis": 2629746000,
        "precise": false,
        "name": "months",
        "type": {
          "name": "months"
        },
        "supported": true
      },
      "name": "monthOfYear",
      "type": {
        "durationType": {
          "name": "months"
        },
        "rangeDurationType": {
          "name": "years"
        },
        "name": "monthOfYear"
      },
      "supported": true
    },
    {
      "minimumValue": 1,
      "maximumValue": 31,
      "rangeDurationField": {
        "unitMillis": 2629746000,
        "precise": false,
        "name": "months",
        "type": {
          "name": "months"
        },
        "supported": true
      },
      "lenient": false,
      "durationField": {
        "unitMillis": 86400000,
        "precise": true,
        "name": "days",
        "type": {
          "name": "days"
        },
        "supported": true
      },
      "unitMillis": 86400000,
      "name": "dayOfMonth",
      "type": {
        "durationType": {
          "name": "days"
        },
        "rangeDurationType": {
          "name": "months"
        },
        "name": "dayOfMonth"
      },
      "supported": true,
      "leapDurationField": null
    }
  ],
  "fieldTypes": [
    {
      "durationType": {
        "name": "years"
      },
      "rangeDurationType": null,
      "name": "year"
    },
    {
      "durationType": {
        "name": "months"
      },
      "rangeDurationType": {
        "name": "years"
      },
      "name": "monthOfYear"
    },
    {
      "durationType": {
        "name": "days"
      },
      "rangeDurationType": {
        "name": "months"
      },
      "name": "dayOfMonth"
    }
  ],
  "values": [
    2000,
    12,
    12
  ]
}

如何使用AngularJS正确显示此日期?

您可以尝试以下代码片段:

var jsonString = '{"dayOfMonth":12,"year":2000,"dayOfWeek":2,"era":1,"dayOfYear":347,"chronology":{"zone":{"fixed":true,"id":"UTC"}},"yearOfEra":2000,"centuryOfEra":20,"yearOfCentury":0,"monthOfYear":12,"weekyear":2000,"weekOfWeekyear":50,"fields":[{"lenient":false,"minimumValue":-292275054,"maximumValue":292278993,"rangeDurationField":null,"leapDurationField":{"unitMillis":86400000,"precise":true,"name":"days","type":{"name":"days"},"supported":true},"durationField":{"unitMillis":31556952000,"precise":false,"name":"years","type":{"name":"years"},"supported":true},"name":"year","type":{"durationType":{"name":"years"},"rangeDurationType":null,"name":"year"},"supported":true},{"lenient":false,"minimumValue":1,"maximumValue":12,"rangeDurationField":{"unitMillis":31556952000,"precise":false,"name":"years","type":{"name":"years"},"supported":true},"leapDurationField":{"unitMillis":86400000,"precise":true,"name":"days","type":{"name":"days"},"supported":true},"durationField":{"unitMillis":2629746000,"precise":false,"name":"months","type":{"name":"months"},"supported":true},"name":"monthOfYear","type":{"durationType":{"name":"months"},"rangeDurationType":{"name":"years"},"name":"monthOfYear"},"supported":true},{"minimumValue":1,"maximumValue":31,"rangeDurationField":{"unitMillis":2629746000,"precise":false,"name":"months","type":{"name":"months"},"supported":true},"lenient":false,"durationField":{"unitMillis":86400000,"precise":true,"name":"days","type":{"name":"days"},"supported":true},"unitMillis":86400000,"name":"dayOfMonth","type":{"durationType":{"name":"days"},"rangeDurationType":{"name":"months"},"name":"dayOfMonth"},"supported":true,"leapDurationField":null}],"fieldTypes":[{"durationType":{"name":"years"},"rangeDurationType":null,"name":"year"},{"durationType":{"name":"months"},"rangeDurationType":{"name":"years"},"name":"monthOfYear"},{"durationType":{"name":"days"},"rangeDurationType":{"name":"months"},"name":"dayOfMonth"}],"values":[2000,12,12]}';

var ConvertedJson = JSON.parse(jsonString);
然后可以将convertedJson用作对象


如果有任何问题,请告诉我。

您可以尝试以下代码片段:

var jsonString = '{"dayOfMonth":12,"year":2000,"dayOfWeek":2,"era":1,"dayOfYear":347,"chronology":{"zone":{"fixed":true,"id":"UTC"}},"yearOfEra":2000,"centuryOfEra":20,"yearOfCentury":0,"monthOfYear":12,"weekyear":2000,"weekOfWeekyear":50,"fields":[{"lenient":false,"minimumValue":-292275054,"maximumValue":292278993,"rangeDurationField":null,"leapDurationField":{"unitMillis":86400000,"precise":true,"name":"days","type":{"name":"days"},"supported":true},"durationField":{"unitMillis":31556952000,"precise":false,"name":"years","type":{"name":"years"},"supported":true},"name":"year","type":{"durationType":{"name":"years"},"rangeDurationType":null,"name":"year"},"supported":true},{"lenient":false,"minimumValue":1,"maximumValue":12,"rangeDurationField":{"unitMillis":31556952000,"precise":false,"name":"years","type":{"name":"years"},"supported":true},"leapDurationField":{"unitMillis":86400000,"precise":true,"name":"days","type":{"name":"days"},"supported":true},"durationField":{"unitMillis":2629746000,"precise":false,"name":"months","type":{"name":"months"},"supported":true},"name":"monthOfYear","type":{"durationType":{"name":"months"},"rangeDurationType":{"name":"years"},"name":"monthOfYear"},"supported":true},{"minimumValue":1,"maximumValue":31,"rangeDurationField":{"unitMillis":2629746000,"precise":false,"name":"months","type":{"name":"months"},"supported":true},"lenient":false,"durationField":{"unitMillis":86400000,"precise":true,"name":"days","type":{"name":"days"},"supported":true},"unitMillis":86400000,"name":"dayOfMonth","type":{"durationType":{"name":"days"},"rangeDurationType":{"name":"months"},"name":"dayOfMonth"},"supported":true,"leapDurationField":null}],"fieldTypes":[{"durationType":{"name":"years"},"rangeDurationType":null,"name":"year"},{"durationType":{"name":"months"},"rangeDurationType":{"name":"years"},"name":"monthOfYear"},{"durationType":{"name":"days"},"rangeDurationType":{"name":"months"},"name":"dayOfMonth"}],"values":[2000,12,12]}';

var ConvertedJson = JSON.parse(jsonString);
然后可以将convertedJson用作对象


如果有任何问题,请告诉我。

从您的JSON响应来看,您似乎正在使用库中的
DateTime
,但您缺少对Joda的Jackson支持。您应该添加以下Maven依赖项:


com.fasterxml.jackson.datatype
要正确设置日期格式,例如:

{{obj.timestamp}日期:'short'}

从您的JSON响应中,似乎您正在使用库中的
DateTime
,但是您缺少对Joda的Jackson支持。您应该添加以下Maven依赖项:


com.fasterxml.jackson.datatype
要正确设置日期格式,例如:

{{obj.timestamp}日期:'short'}

我使用此span标记获取日期您希望在屏幕上显示哪些信息?只有日期和格式?您能告诉我您的“日期时间”字段在Java/Spring中是什么类型的吗?它是来自Joda还是Java 8时间库的
DateTime
?我使用这个span标记来获取日期您希望在屏幕上显示什么信息?只有日期和格式?您能告诉我您的“日期时间”字段在Java/Spring中是什么类型的吗?它是来自Joda还是Java 8时间库的
DateTime
?谢谢。这就是我一直在找的。谢谢。这就是我一直在寻找的。
obj.timestamp = new Date(obj.timestamp);