Does anyone know what is the limit on the size of JSON data type in PostgreSQL 9.2?

推荐答案

查看PostgreSQL 9.2.1的源代码:

Source: postgresql-9.2.1\src\backend\utils\adt\json.c:
/*
 * Input.
 */
Datum
json_in(PG_FUNCTION_ARGS)
{
    char       *text = PG_GETARG_CSTRING(0);

    json_validate_cstring(text);

    /* Internal representation is the same as text, for now */
    PG_RETURN_TEXT_P(cstring_to_text(text));
}

PostgreSQL 9.3.5的更新:

json_in函数中的代码已更改,但json内部表示仍然是文本:

Source: postgresql-9.3.5\src\backend\utils\adt\json.c:
/*
 * Input.
 */
Datum
json_in(PG_FUNCTION_ARGS)
{
    char       *json = PG_GETARG_CSTRING(0);
    text       *result = cstring_to_text(json);
    JsonLexContext *lex;

    /* validate it */
    lex = makeJsonLexContext(result, false);
    pg_parse_json(lex, &nullSemAction);

    /* Internal representation is the same as text, for now */
    PG_RETURN_TEXT_P(result);
}

因此,至少目前来看,jsontext数据类型相同,但带有JSON验证.text数据类型的最大大小为1GB.

Json相关问答推荐

如何使用 jq 返回此 JSON 文件的“文本”字段?

使用 Jolt 使用键中的值创建带有硬编码键和值的 JSON 数组

hook到 Decodable.init() 以获得未指定的键?

C# 合并 2 个几乎相同的 JSON 对象

System.Text.Json 中是否可以进行多态反序列化?

在 pandas DataFrame 中取消嵌套(分解)多个列表列的有效方法

ASP.NET Core 3.0 [FromBody] 字符串内容返回“无法将 JSON 值转换为 System.String.”

Gson:@Expose 与 @SerializedName

在 TypeScript 中导入 JSON 文件

使用Angular 2 的 http.get() 从本地文件加载 json

JSON Jackson 将不同的键解析到同一个字段中

pandas.io.json.json_normalize 带有非常嵌套的 json

在 Swift 中解码 JSON 时出现“无法读取数据,因为它丢失了”错误

Swift 4 可编码;如何使用单个根级密钥解码对象

如何从 Python 中的文件/流中懒惰地读取多个 JSON 值?

react 路由 v^4.0.0 未捕获类型错误:无法读取未定义的属性“位置”

使用 Retrofit & Gson 解析 JSON 数组响应

在 React 中使用 immutability-helper 设置变量对象键

如何使用 Jackson 注释将嵌套值映射到属性?

tsconfig.json:构建:在配置文件中找不到输入