在Go語言的開發中,經常會遇到需要判斷一個字符串是否為JSON格式的情況。那么該如何判斷呢?
func isJSON(str string) bool {
var js json.RawMessage
return json.Unmarshal([]byte(str), &js) == nil
}
以上是使用Go語言標準庫中的json.Unmarshal()函數來判斷一個字符串是否為JSON格式的代碼。
具體的實現步驟如下:
- 定義一個json.RawMessage類型的變量js。
- 使用json.Unmarshal()函數解析字符串str并將其存儲在變量js中。
- 判斷解析是否成功,成功則說明該字符串為JSON格式,返回true,否則說明不是JSON格式的字符串,返回false。
需要注意的是,在使用該函數之前,需要先import "encoding/json"。
import "encoding/json"
func main(){
str1 := `{"name": "Tom", "age": 20}`
str2 := `"name": "Tom", "age": 20}`
if isJSON(str1) {
fmt.Println("str1是JSON格式的字符串")
} else {
fmt.Println("str1不是JSON格式的字符串")
}
if isJSON(str2) {
fmt.Println("str2是JSON格式的字符串")
} else {
fmt.Println("str2不是JSON格式的字符串")
}
}
以上是一個使用isJSON()函數來判斷字符串是否為JSON格式的例子。