golang 去除json字符串转义 
时间: 2023-05-10 10:50:06 浏览: 675
在 golang 中,将字符串转换为 json 格式时,会自动将一些特殊字符添加反斜杠进行转义,如双引号、反斜杠、换行符等。这样做是为了避免这些特殊字符对 json 格式的解析产生干扰。
但有些时候,我们需要将这些转义字符去掉,得到原始的字符串内容。这时可以使用 strconv 包中的 Unquote() 函数。
Unquote() 函数会将字符串中表示转义字符的反斜杠去除,并将实际的字符转义为其对应的 ASCII 字符。如果字符串不是以双引号包裹的,则会返回一个错误。
示例代码如下:
```
package main
import (
"fmt"
"strconv"
)
func main() {
jsonStr := `{"name":"golang","version":"1.16"}`
fmt.Println(jsonStr)
unquotedStr, err := strconv.Unquote(jsonStr)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(unquotedStr)
}
```
输出结果如下:
```
{"name":"golang","version":"1.16"}
{name:golang,version:1.16}
```
可以看到,经过 Unquote() 处理后,字符串中的双引号已经去掉了,而转义的字符也被正确还原。
相关问题
golang将map转为json字符串
Golang使用encoding/json包来转换map为json字符串。
下面是一个例子:
```
package main
import (
"encoding/json"
"fmt"
)
func main() {
m := make(map[string]interface{})
m["foo"] = "bar"
m["baz"] = 123
jsonStr, err := json.Marshal(m)
if err != nil {
panic(err)
}
fmt.Println(string(jsonStr))
}
```
输出:
```
{"foo":"bar","baz":123}
```
如果你想要美化输出的json字符串,你可以使用json.MarshalIndent函数,如下所示:
```
package main
import (
"encoding/json"
"fmt"
)
func main() {
m := make(map[string]interface{})
m["foo"] = "bar"
m["baz"] = 123
jsonStr, err := json.MarshalIndent(m, "", " ")
if err != nil {
panic(err)
}
fmt.Println(string(jsonStr))
}
```
输出:
```
{
"foo": "bar",
"baz": 123
}
```
希望这可以帮到你!
golang 将reader数据转为json字符串
可以使用 `json` 包的 `Decoder` 类型将 `io.Reader` 转换为 JSON 字符串。
下面是一个示例代码:
```go
package main
import (
"encoding/json"
"fmt"
"io"
"strings"
)
func main() {
data := `{"name": "Alice", "age": 30}`
reader := strings.NewReader(data)
var jsonData map[string]interface{}
err := json.NewDecoder(reader).Decode(&jsonData)
if err != nil {
panic(err)
}
jsonBytes, err := json.Marshal(jsonData)
if err != nil {
panic(err)
}
jsonStr := string(jsonBytes)
fmt.Println(jsonStr)
}
```
在这个例子中,我们首先创建了一个包含 JSON 数据的 `strings.Reader` 对象。然后,我们使用 `json.NewDecoder()` 方法创建了一个 `Decoder` 对象,并调用 `Decode()` 方法将 JSON 数据解码到 `jsonData` 变量中。
接下来,我们使用 `json.Marshal()` 方法将 `jsonData` 转换为 JSON 字节数组,并将其转换为字符串类型。最后,我们打印输出了 JSON 字符串。
相关推荐














