> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# type_json_* format settings

> ClickHouse format settings in the type_json_* generated group.

export const SettingsInfoBlock = ({type, default_value, changeable_without_restart}) => {
  return <div className="not-prose" style={{
    display: "flex",
    flexWrap: "wrap",
    alignItems: "baseline",
    columnGap: "0.5rem",
    rowGap: "0.125rem",
    margin: "0.375rem 0",
    fontSize: "0.8125rem",
    lineHeight: "1.125rem"
  }}>
      <div style={{
    fontWeight: 600,
    opacity: 0.72
  }}>Type</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{type}</div>
      <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>Default</div>
      <div style={{
    overflowWrap: "anywhere"
  }}>{default_value}</div>
      {changeable_without_restart && <div style={{
    fontWeight: 600,
    opacity: 0.72,
    marginInlineStart: "0.5rem"
  }}>
          Changeable without restart
        </div>}
      {changeable_without_restart && <div style={{
    overflowWrap: "anywhere"
  }}>
          {changeable_without_restart}
        </div>}
    </div>;
};

These settings are autogenerated from [source](https://github.com/ClickHouse/ClickHouse/blob/master/src/Core/FormatFactorySettings.h).

<h2 id="type_json_allow_duplicated_key_with_literal_and_nested_object">
  type\_json\_allow\_duplicated\_key\_with\_literal\_and\_nested\_object
</h2>

<SettingsInfoBlock type="Bool" default_value="1" />

When enabled, JSONs like `{"a" : 42, "a" : {"b" : 42}}` where some key is duplicated but one of them is a nested object are allowed to be parsed.

<h2 id="type_json_skip_duplicated_paths">
  type\_json\_skip\_duplicated\_paths
</h2>

<SettingsInfoBlock type="Bool" default_value="0" />

When enabled, during parsing JSON object into JSON type duplicated paths will be ignored and only the first one will be inserted instead of an exceptio

<h2 id="type_json_skip_invalid_typed_paths">
  type\_json\_skip\_invalid\_typed\_paths
</h2>

<SettingsInfoBlock type="Bool" default_value="0" />

When enabled, fields with values that cannot be coerced to their declared type in JSON type columns with typed paths are skipped instead of throwing an error. Skipped fields are treated as missing and will use default/null values based on the typed path definition.

This setting only applies to JSON type columns (e.g., JSON(a Int64, b String)) where specific paths have declared types. It does not apply to regular JSON input formats like JSONEachRow when inserting into regular typed columns.

Possible values:

* 0 — Disable (throw error on type mismatch).
* 1 — Enable (skip field on type mismatch).

<h2 id="type_json_use_partial_match_to_skip_paths_by_regexp">
  type\_json\_use\_partial\_match\_to\_skip\_paths\_by\_regexp
</h2>

<SettingsInfoBlock type="Bool" default_value="1" />

When enabled, during parsing JSON object into JSON type regular expressions specified using SKIP REGEXP will require partial match to skip a path. When disabled, full match will be required.
