---
source_url: https://docs.dolphindb.cn/zh/funcs/j/jsonextract.html
fetched_at: 2026-05-19T09:29:08Z
category: funcs
title: jsonExtract
sha1: 39dd6843769f097f7c6d92b5e42aa810f42c2f2e
---

# jsonExtract

## 语法

`jsonExtract(json, location, type)`

## 详情

查询 JSON 对象中指定位置的数据，并按指定类型输出结果。

## 参数

**json** LITERAL 类型标量或向量，表示符合标准 JSON 字符串。

**location** 标量/向量/元组。每个元素可以是字符串或非零整数，用于指定相应维度的位置。

- 如果为字符串，表示查询指定键对应的元素。
- 如果为整数：表示查询该整数对应位置的元素。正整数表示从头开始查询，负整数表示从尾部开始查询。

**type** 字符串标量，表示返回结果的类型，可选值为 "long", "int", "double", "string" 。

## 返回值

- 当参数 *json* 为标量时，返回标量结果；为向量时，返回向量结果。
- 返回值类型由参数 *type* 指定。
- 如果参数 *location* 指定的元素不存在，或无法解析为指定的类型，则返回空值 。

## 例子

例1 基础用法

```dolphindb
A = '{"a": "hello", "b": [-100, 200.5, 300], "c": { "b" : 2} }'
jsonExtract(A, [2, 1], "int") 
// output: -100

jsonExtract(A, 1, "int") 
// output: NULL

jsonExtract(A, 999, "int") 
// output: NULL

jsonExtract(A, ["b", 2], "int") 
// output: 200

jsonExtract(A, ["c", "b"], "double") 
// output: 2

B = '{"a": "hello", "b": [200, 300]}'
jsonExtract([A, B], ["c", "b"], "int") 
// output: [2, NULL]

jsonExtract([A, B], [2, -1], "int") 
// output: [300, 300]
```

例2 查询表中 JSON 字符串里指定位置的数据。

```dolphindb
A1 = '{"a": "a1","c": { "b" : 2} }'
A2 = '{"a": "a2", "c": { "b" : 3} }'
B1 = '{"a": "b1",  "c": { "b" : 3} }'
B2 = '{"a": "b2", "c": { "b" : 4} }'
t1 = table([A1, A2] as json, [2,3] as val)
t2 = table([B1, B2] as json, [3,4] as val)

select
    jsonExtract(t1.json, "a", "string") as json1, 
    jsonExtract(t2.json, "a", "string") as json2 
from t1 
join t2 on t1.val = t2.val
```

| json1 | json2 |
| --- | --- |
| a2 | b1 |
