↑↓ select↵ open⌫ change scopeOpen full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

Wiki / Versions

SQL/JSON IS JSON

Recorded source states and original language descriptions. Missing version evidence stays unknown.

The source snapshot records transitions for PostgreSQL 8.1–18. The historical matrix records independent cells for 7.4–18. Neither records support for PostgreSQL 19 or 20; newer versions remain unknown. These source claims are distinct from runtime measurements.

JSON

Description

SQL/JSON syntax for testing the type of JSON object. For example:

SELECT js,
  js IS JSON "json?",
  js IS JSON SCALAR "scalar?",
  js IS JSON OBJECT "object?",
  js IS JSON ARRAY "array?"
FROM (VALUES
      ('123'), ('"abc"'), ('{"a": "b"}'), ('[1,2]'),('abc')) foo(js);

Selected version: PostgreSQL 18

Yes

20191817161514131211109.69.59.49.39.29.19.08.48.38.28.18.07.4
UnknownUnknownYesYesYesNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoNoUnknownUnknown

Compare versions

Original documentation links

Recorded legacy identifiers: 396

Complete source facts and provenance

yaml · center · 1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd

{
  "Key": "sqljson-is-json",
  "SourceKind": "yaml",
  "SourceDatabase": "center",
  "SourceTable": "featurematrix.yaml",
  "SourceKey": "SQL/JSON IS JSON",
  "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
  "Name": "SQL/JSON IS JSON",
  "NameLocale": "en",
  "GroupKey": "json",
  "GroupName": "JSON",
  "GroupLocale": "en",
  "Ordinal": 7,
  "GroupOrder": 6,
  "Facts": {
    "feature": {
      "description": "SQL/JSON syntax for testing the type of JSON object. For example:\r\n\r\n```\r\nSELECT js,\r\n  js IS JSON \"json?\",\r\n  js IS JSON SCALAR \"scalar?\",\r\n  js IS JSON OBJECT \"object?\",\r\n  js IS JSON ARRAY \"array?\"\r\nFROM (VALUES\r\n      ('123'), ('\"abc\"'), ('{\"a\": \"b\"}'), ('[1,2]'),('abc')) foo(js);\r\n```",
      "name": "SQL/JSON IS JSON",
      "versions": {
        "16": "Yes"
      }
    },
    "group": "JSON",
    "versions": {
      "max": 18,
      "min": 8.1
    }
  },
  "Cells": [
    {
      "Version": "10",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "11",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "12",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "13",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "14",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "15",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "16",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "16",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "17",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "16",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "18",
      "State": "yes",
      "EvidenceKind": "yaml-transition",
      "TransitionVersion": "16",
      "Supported": true,
      "Original": "Yes"
    },
    {
      "Version": "8.1",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "8.2",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "8.3",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "8.4",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.0",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.1",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.2",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.3",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.4",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.5",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    },
    {
      "Version": "9.6",
      "State": "no",
      "EvidenceKind": "yaml-default-no",
      "TransitionVersion": "",
      "Supported": false,
      "Original": "No"
    }
  ],
  "Texts": [
    {
      "Locale": "en",
      "Title": "SQL/JSON IS JSON",
      "BodyHTML": "\u003cp\u003eSQL/JSON syntax for testing the type of JSON object. For example:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eSELECT js,\n  js IS JSON \u0026#34;json?\u0026#34;,\n  js IS JSON SCALAR \u0026#34;scalar?\u0026#34;,\n  js IS JSON OBJECT \u0026#34;object?\u0026#34;,\n  js IS JSON ARRAY \u0026#34;array?\u0026#34;\nFROM (VALUES\n      (\u0026#39;123\u0026#39;), (\u0026#39;\u0026#34;abc\u0026#34;\u0026#39;), (\u0026#39;{\u0026#34;a\u0026#34;: \u0026#34;b\u0026#34;}\u0026#39;), (\u0026#39;[1,2]\u0026#39;),(\u0026#39;abc\u0026#39;)) foo(js);\n\u003c/code\u003e\u003c/pre\u003e\n",
      "SourceHash": "1dd22bf9a7f3ec325b894e2836fda535a25529f246a94dd41d6abbfe9997f7fd",
      "ContentHash": "13bfbadcfa68f4d3bd65751467ba4b8985cfad530cbea4dad2d3ebf760fbb25e",
      "Payload": {
        "description": "SQL/JSON syntax for testing the type of JSON object. For example:\r\n\r\n```\r\nSELECT js,\r\n  js IS JSON \"json?\",\r\n  js IS JSON SCALAR \"scalar?\",\r\n  js IS JSON OBJECT \"object?\",\r\n  js IS JSON ARRAY \"array?\"\r\nFROM (VALUES\r\n      ('123'), ('\"abc\"'), ('{\"a\": \"b\"}'), ('[1,2]'),('abc')) foo(js);\r\n```",
        "name": "SQL/JSON IS JSON",
        "versions": {
          "16": "Yes"
        }
      }
    },
    {
      "Locale": "zh-Hans",
      "Title": "SQL/JSON IS JSON",
      "BodyHTML": "\u003cp\u003e新增用于测试 JSON 值类型的 SQL/JSON 语法,例如判断一个值是否为 JSON、标量、对象或数组。\u003c/p\u003e\n",
      "SourceHash": "071091951021357a5f492adb04caed6febf4d315ac2626ca027a48dd8ec01d50",
      "ContentHash": "9c60e7fb5aa1b976faf66652d7e4416b6916830edc90ce2914b0095bff89f812",
      "Payload": {
        "description": "新增用于测试 JSON 值类型的 SQL/JSON 语法,例如判断一个值是否为 JSON、标量、对象或数组。",
        "name": "SQL/JSON IS JSON"
      }
    }
  ],
  "GroupTitles": {
    "en": "JSON",
    "zh-Hans": "JSON"
  },
  "LegacyIDs": [
    "396"
  ]
}

Complete source data JSON