Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在公共库中重用结构,并更改相关的json字段_Json_Go - Fatal编程技术网

如何在公共库中重用结构,并更改相关的json字段

如何在公共库中重用结构,并更改相关的json字段,json,go,Json,Go,我有一个共享库,它的结构如下 //Measure struct type Measure struct { Timestamp time.Time `json:"timestamp"` Delta float64 `json:"delta"` Redistribute float64 `json:"redistribute"` } 现在,在我的项目中,字段是可以的,但是json信息可能会有所不同,我的意思是我可以通过json:“value”而

我有一个共享库,它的结构如下

//Measure struct
type Measure struct {
    Timestamp    time.Time `json:"timestamp"`
    Delta        float64   `json:"delta"`
    Redistribute float64   `json:"redistribute"`
}
现在,在我的项目中,字段是可以的,但是json信息可能会有所不同,我的意思是我可以通过
json:“value”
而不是
json:“delta”
接收json中的信息

我应该如何重载这些值

我应该如何重载这些值

你不应该。Go中没有重载。您有两个选择:

  • 嵌入类型,并隐藏标记
  • 键入OtherMeasure结构{
    包装尺寸
    Delta float64`json:“值”`
    }
    
  • 复制结构
  • 键入OtherMeasure结构{
    Timestamp time.time`json:“Timestamp”`
    Delta float64`json:“值”`
    redistributefloat64`json:“Redistribute”`
    }
    
    对于这样的小型结构,复制可能是首选,因为这样就可以进行简单的类型转换:

    var om OtherMeasure = /* set the specific value */
    var m Measure = Measure(om)
    

    您需要使用适当的JSON映射定义一个新类型。我可以扩展原始结构吗?不。您不能在定义该结构的包之外对其进行更改。如果您可以将一般问题提取为易于理解的问题,我们可能可以帮助您更有效地解决您面临的实际问题,我不知道为什么有4个人投了反对票,我只能猜测他们的原因。一些可能性:1。这个问题表明研究工作很少或根本没有。它没有显示您当前的尝试,3。这似乎是一个XY问题。也许有人另有原因。