Go json.Valid()

Jmnote (토론 | 기여)님의 2025년 2월 18일 (화) 16:27 판 (새 문서: ==개요== ;Go isJSONString() <syntaxhighlight lang='go'> package main import ( "encoding/json" "fmt" ) func isJSONString(s string) bool { var js interface{} err := json.Unmars...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요

Go isJSONString()
Go
Copy
package main

import (
	"encoding/json"
	"fmt"
)

func isJSONString(s string) bool {
	var js interface{}
	err := json.Unmarshal([]byte(s), &js)
	return err == nil
}

func main() {
	testStrings := []string{
		// false
		"",
		"[",
		"<html></html>",
		"{",
		`{a:1,b:2,c:3}`,
		`{"incomplete": "data"`,

		// true
		`{"name": "John", "age": 30}`,
		`[{"name": "John"}, {"name": "Jane"}]`,
		`"Just a string"`,
		`12345`,
		`true`,
		`[]`,
		`[1,2,3]`,
		`{}`,
		`{"a":1,"b":2,"c":3}`,
	}

	for _, str := range testStrings {
		if isJSONString(str) {
			fmt.Println("✔️", str)
		} else {
			fmt.Println("❌", str)
		}
	}
}

/*

❌ [
❌ <html></html>
❌ {
❌ {a:1,b:2,c:3}
❌ {"incomplete": "data"
✔️ {"name": "John", "age": 30}
✔️ [{"name": "John"}, {"name": "Jane"}]
✔️ "Just a string"
✔️ 12345
✔️ true
✔️ []
✔️ [1,2,3]
✔️ {}
✔️ {"a":1,"b":2,"c":3}
*/


2 같이 보기