gpt4 book ai didi

go - 将 "\n"嵌入字符串文字时出错

转载 作者:IT王子 更新时间:2023-10-29 01:21:19 40 4
gpt4 key购买 nike

我需要解码其中包含“\n”的 JSON 字符串:

[
{"Name":"Neo", "Message":"Hi\n:Hello everyone"},
{"Name":"Sam","Messsage":"Hello\nEveery\nOne"}
]

我使用下面的 Golang 代码:

package main

import (
"encoding/json"
"fmt"
)

type Person struct {
Messages []string `json:"Name,omitempty"`
}

func main() {
s := "[{\"Name\":\"Neo\", \"Message\":\"Hi\n:Hello everyone\"}, {\"Name\":\"Sam\",\"Messsage\":\"Hello\nEveery\nOne\"}]"
var pro Person
err := json.Unmarshal([]byte(s), &pro)
if err == nil {
fmt.Printf("%+v\n", pro)
} else {
fmt.Println(err)
fmt.Printf("%+v\n", err)
}
}

但是我得到了错误:

ERROR invalid character '\n' in string literal

最佳答案

这里有几个问题。首先是 JSON 字符串中不允许换行。使用两个字节 \n 来指定换行符,而不是实际的换行符。如果您使用解释的字符串文字,则 \ 必须用 \ 引起来。示例:

"Hello\\nWorld"

原始字符串文字中不需要引号:

`Hello\nWorld`

下一个问题是 JSON 值是一个对象值数组。要处理数组,解码为一个 slice :

var pro []Person
err := json.Unmarshal([]byte(s), &pro)

要处理对象,将 Person 定义为结构:

type Person struct {
Name string
Message string
}

working example on the playground .

关于go - 将 "\n"嵌入字符串文字时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38977555/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com