从 types.JSON.TEXT 转换为字符串列表
Convert from types.JSON.TEXT to list of strings
我有一个 JSON.TEXT (https://godoc.org/github.com/jmoiron/sqlx/types#JSONText),我需要将其转换为字符串列表。例如,你如何转换
"[equals, less than]" // JSON.TEXT type
到
["equals", "less than"] // list of strings
我试图通过使用 string()
、修剪 [
和 ]
括号并加入它们来显式转换 JSON.TEXT 类型,但我最终带有奇怪反斜杠的字符串数组:
["\"equal to\"", " \"less than equal to\""]
是否有其他方法可以实现此目的,或者我怎样才能去掉反斜杠?
从您的 trim/split 的结果来看,您的变量似乎是
types.JSONText([]byte(`["equals", "less than"]`))
要将其转换为一段字符串,您可以使用 json.Unmarshal 函数
package main
import (
"encoding/json"
"fmt"
"github.com/jmoiron/sqlx/types"
)
func main() {
txt := types.JSONText([]byte(`["equals", "less than"]`))
var slice []string
json.Unmarshal(txt, &slice)
fmt.Println(slice)
}
这里有一个 link 去游乐场:https://play.golang.com/p/cAiJjWNu8Vx
package main
import (
"encoding/json"
"fmt"
"github.com/jmoiron/sqlx/types"
"strings"
)
func main() {
a := types.JSONText([]byte(`"[equals, less than]"`))
var s string
json.Unmarshal(a, &s)
trim := strings.Trim(s, "[ ]") // equals, less than (string)
str := strings.Split(trim,",") // [equals less than] (slice string)
f, _ := json.Marshal(str)
fmt.Println(string(f)) // ["equals"," less than"] (string)
}
您需要先解组,然后 trim [] 字符,然后将字符串拆分为切片并再次编组字符串
我有一个 JSON.TEXT (https://godoc.org/github.com/jmoiron/sqlx/types#JSONText),我需要将其转换为字符串列表。例如,你如何转换
"[equals, less than]" // JSON.TEXT type
到
["equals", "less than"] // list of strings
我试图通过使用 string()
、修剪 [
和 ]
括号并加入它们来显式转换 JSON.TEXT 类型,但我最终带有奇怪反斜杠的字符串数组:
["\"equal to\"", " \"less than equal to\""]
是否有其他方法可以实现此目的,或者我怎样才能去掉反斜杠?
从您的 trim/split 的结果来看,您的变量似乎是
types.JSONText([]byte(`["equals", "less than"]`))
要将其转换为一段字符串,您可以使用 json.Unmarshal 函数
package main
import (
"encoding/json"
"fmt"
"github.com/jmoiron/sqlx/types"
)
func main() {
txt := types.JSONText([]byte(`["equals", "less than"]`))
var slice []string
json.Unmarshal(txt, &slice)
fmt.Println(slice)
}
这里有一个 link 去游乐场:https://play.golang.com/p/cAiJjWNu8Vx
package main
import (
"encoding/json"
"fmt"
"github.com/jmoiron/sqlx/types"
"strings"
)
func main() {
a := types.JSONText([]byte(`"[equals, less than]"`))
var s string
json.Unmarshal(a, &s)
trim := strings.Trim(s, "[ ]") // equals, less than (string)
str := strings.Split(trim,",") // [equals less than] (slice string)
f, _ := json.Marshal(str)
fmt.Println(string(f)) // ["equals"," less than"] (string)
}
您需要先解组,然后 trim [] 字符,然后将字符串拆分为切片并再次编组字符串