Функция json.Valid

Функция json.Valid проверяет, является ли переданный байтовый срез валидным JSON-документом. Она возвращает true, если данные представляют собой корректный JSON, и false в противном случае. В качестве единственного параметра функция принимает байтовый срез с JSON-данными.

Синтаксис

gojson.Valid(data)

Пример

Давайте проверим, является ли валидным JSON-документ с объектом:

gopackage main

import (
  "encoding/json"
  "fmt"
)

func main() {
  validJSON := []byte(`{"name":"John","age":30}`)
  res := json.Valid(validJSON)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Давайте проверим, является ли валидным JSON-документ с массивом:

gopackage main

import (
  "encoding/json"
  "fmt"
)

func main() {
  validJSON := []byte(`["a","b","c"]`)
  res := json.Valid(validJSON)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Давайте проверим, является ли валидным JSON-документ с простыми значениями:

gopackage main

import (
  "encoding/json"
  "fmt"
)

func main() {
  validJSON := []byte(`"Hello, World!"`)
  res := json.Valid(validJSON)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Давайте проверим, является ли валидным JSON-документ с числом:

gopackage main

import (
  "encoding/json"
  "fmt"
)

func main() {
  validJSON := []byte(`12345`)
  res := json.Valid(validJSON)
  fmt.Println(res)
}

Результат выполнения кода:

gotrue

Пример

Давайте проверим, является ли валидным JSON-документ с некорректным синтаксисом:

gopackage main

import (
  "encoding/json"
  "fmt"
)

func main() {
  invalidJSON := []byte(`{"name":"John","age":30,}`)
  res := json.Valid(invalidJSON)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Давайте проверим, является ли валидным JSON-документ с пропущенной кавычкой:

gopackage main

import (
  "encoding/json"
  "fmt"
)

func main() {
  invalidJSON := []byte(`{"name":John,"age":30}`)
  res := json.Valid(invalidJSON)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Пример

Давайте проверим, является ли валидным JSON-документ с пустой строкой:

gopackage main

import (
  "encoding/json"
  "fmt"
)

func main() {
  emptyJSON := []byte(``)
  res := json.Valid(emptyJSON)
  fmt.Println(res)
}

Результат выполнения кода:

gofalse

Смотрите также

  • функцию json.Marshal,
    которая преобразует структуру в JSON-данные
  • функцию json.Unmarshal,
    которая преобразует JSON-данные в структуру
  • функцию json.MarshalIndent,
    которая преобразует структуру в JSON с отступами
  • функцию json.Compact,
    которая сжимает JSON-данные