Golang如何将用户自定义消息打印到结构体并解析为JSON编码

Golang如何将用户自定义消息打印到结构体并解析为JSON编码 大家好,

我有一个结构体

type Response struct {
Status string `json:"status"`
Message string `json:"message"`
}

我有字符串

stat := "Valid"
msg := fmt.Sprinf(abc"+" cde)

我想将 statmsg 传递给结构体 Response,并在 JSON 编码中使用它,我该如何实现?

3 回复

只需创建一个类型为 Response 的变量,并为每个属性分配相应的值。

    stat := “Valid”
    msg := fmt.Sprinf(abc"+" cde)
    newResponse := Response{ Status:stat, Message:msg}
    b, err := json.Marshal(newResponse)

更多关于Golang如何将用户自定义消息打印到结构体并解析为JSON编码的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


这个方法有效,非常感谢。

可以使用以下代码将自定义消息赋值给结构体并编码为JSON:

package main

import (
    "encoding/json"
    "fmt"
)

type Response struct {
    Status  string `json:"status"`
    Message string `json:"message"`
}

func main() {
    stat := "Valid"
    msg := fmt.Sprintf("abc" + " cde")
    
    // 创建Response实例并赋值
    resp := Response{
        Status:  stat,
        Message: msg,
    }
    
    // 编码为JSON
    jsonData, err := json.Marshal(resp)
    if err != nil {
        fmt.Println("JSON编码错误:", err)
        return
    }
    
    fmt.Println(string(jsonData))
    // 输出: {"status":"Valid","message":"abc cde"}
}

如果需要解析JSON字符串回结构体:

// 解析JSON到结构体
var parsedResp Response
err = json.Unmarshal(jsonData, &parsedResp)
if err != nil {
    fmt.Println("JSON解析错误:", err)
    return
}

fmt.Printf("解析结果: Status=%s, Message=%s\n", 
    parsedResp.Status, parsedResp.Message)

如果msg需要更复杂的格式化:

name := "John"
age := 30
msg := fmt.Sprintf("用户 %s 年龄 %d", name, age)

resp := Response{
    Status:  "Success",
    Message: msg,
}

jsonData, _ := json.Marshal(resp)
fmt.Println(string(jsonData))
// 输出: {"status":"Success","message":"用户 John 年龄 30"}
回到顶部