如下json返回值该如何解析?

{
    "status": "success",
    "data": {
        "resultType": "matrix",
        "result": [
            {
                "metric": {
                    "pod_name": "prometheus-k8s"
                },
                "values": [
                    [
                        1612254395,
                        "40969232384"
                    ],
                    [
                        1612254995,
                        "39823257600"
                    ]
                ]
            }
        ]
    }
}

首先要构造出合适的结构体,根据以上返回值构造结构体如下:

// prometheus 响应体
type VectorResponse struct {
	Status string         `json:"status"`
	Data   PrometheusData `json:"data"`
}

type PrometheusData struct {
	ResultType string   `json:"resultType"`
	Result     []Vector `json:"result"`
}

type Vector struct {
	Metric map[string]string `json:"metric"`
	Value  [][]interface{}     `json:"values"`
}

 将json字符串转换成以上自定义的数据结构

var response VectorResponse
err = json.Unmarshal(data, &response)
if err != nil {
	fmt.Errorf("failed to unmarshal response: %v", err)
}

 

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐