在Go中解析奇数JSON日期格式

博·特雷普

我正在调用一个较旧的api,它以的形式返回对象。

{ value: 1, time: "/Date(1412321990000)/" }

使用定义的结构

type Values struct{
  Value int
  Time time.Time
}

给我一个&time.ParseError。我是Go的初学者,有没有一种方法可以定义应如何对其进行序列化/反序列化?最终,我确实希望将其作为time.Time对象。

此日期格式似乎也是较旧的.NET格式。也不能真正改变输出。

马洛尼

您需要在Values结构上实现json Unmarshaler接口。

// UnmarshalJSON implements json's Unmarshaler interface
func (v *Values) UnmarshalJSON(data []byte) error {
    // create tmp struct to unmarshal into
    var tmp struct {
        Value int    `json:"value"`
        Time  string `json:"time"`
    }
    if err := json.Unmarshal(data, &tmp); err != nil {
        return err
    }

    v.Value = tmp.Value

    // trim out the timestamp
    s := strings.TrimSuffix(strings.TrimPrefix(tmp.Time, "/Date("), ")/")

    i, err := strconv.ParseInt(s, 10, 64)
    if err != nil {
        return err
    }

    // create and assign time using the timestamp
    v.Time = time.Unix(i/1000, 0)

    return nil
}

查看这个工作示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用lubridate解析/格式化奇数日期格式

来自分类Dev

GSON日期格式-在JSON解析中处理空日期

来自分类Dev

在Go中解析JSON

来自分类Dev

PHPExcel日期格式为奇数

来自分类Dev

在dart中解析任意日期格式

来自分类Dev

用奇怪的格式解析R中的日期

来自分类Dev

在Excel中解析日期/时间格式

来自分类Dev

在Javascript中解析日期时指定日期格式

来自分类Dev

解析日期。无法在java中解析相同的格式

来自分类Dev

解析XSL日期格式

来自分类Dev

Java日期格式解析

来自分类Dev

将Date解析为MS JSON日期格式的Java方法

来自分类Dev

使用 Swift Decodable 解析任意格式的 JSON 日期

来自分类Dev

如何格式化通过 AJAX 从 ASPX JSON 解析的日期?

来自分类Dev

如何将JSON格式的日期字符串解析为日期格式

来自分类Dev

spring-boot中的json日期格式

来自分类Dev

如何从JSON格式修改Flask中的日期

来自分类Dev

json中的日期格式成角度

来自分类Dev

在JavaScript中解析格式错误的JSON

来自分类Dev

R中的JSON格式拒绝解析?

来自分类Dev

我们应该如何在ASP.NET C#应用程序中解析特定的JSON日期格式?

来自分类Dev

在Python中解析任意日期格式(包括rfc3164)

来自分类Dev

在Excel,Chrome和Firefox中解析的日期时间格式

来自分类Dev

Python 2.7中的日期解析和格式化

来自分类Dev

在PHP中解析格式不一致的日期

来自分类Dev

在Python中解析未格式化的日期

来自分类Dev

如何在C#中解析默认的git日期格式

来自分类Dev

从XML在SQL Server中解析错误的日期格式

来自分类Dev

如何在Excel中解析非标准日期格式?