无法创建嵌套结构

时间:2019-11-28 20:23:33

标签: json go

我必须在go中格式化json,但遇到一些问题。 我在Java中使用的字符串文字如下:

   String jsonString= "{\"stream\":\"temperatura2\",\r\n" + 
        "\"sensor\":\"ec6c613a-66b4-4584-fb37-5f7cac130f7d\",\r\n" + 
        "\"values\":[{\"time\":\"2019-03-10T11:30:00Z\",\"components\":{\"alfanum\":\"99.0\"}}]}\r\n";

所以我创建了这个结构:

type YuccaDataStream struct {
    Stream string `json:"stream"`
    Sensor string `json:"sensor"`
    Values []struct {
       Time       time.Time `json:"time"`
         Components struct {
         Alfanum string `json:"alfanum"`
      } `json:"components"`
   } `json:"values"`
}

该结构正确吗? 我不知道如何创建该结构的实例并用当前时间填充它。

2 个答案:

答案 0 :(得分:1)

不要那样做。

package main

import (
    "fmt"
    "time"
)

func main() {
    fmt.Println("Hello, playground")

    y := YuccaDataStream{
        Values: []struct {
            Time       time.Time
            Components struct {
                Alfanum string
            }
        }{

            //
            struct {
                Time       time.Time
                Components struct {
                    Alfanum string
                }
            }{Time: time.Now(), Components: struct{ Alphanum string }{Alphanum: "aaa"}},
            //
            struct {
                Time       time.Time
                Components struct {
                    Alfanum string
                }
            }{Time: time.Now(), Components: struct{ Alphanum string }{Alphanum: "bbb"}},
            //

        },
    }
}

type YuccaDataStream struct {
    Stream string `json:"stream"`
    Sensor string `json:"sensor"`
    Values []struct {
        Time       time.Time `json:"time"`
        Components struct {
            Alfanum string `json:"alfanum"`
        } `json:"components"`
    } `json:"values"`
}

答案 1 :(得分:1)

如何?

case_when

try in go playground