{
"store": {
"book": [
{ "category": "fiction", "author": "Author A", "title": "Book 1" },
{ "category": "reference", "author": "Author B", "title": "Book 2" },
{ "category": "fiction", "author": "Author C", "title": "Book 3" }
]
}
}
book์ title์ ์ถ์ถํ๋ ค๋ฉด ๋ค์ JSONPath ํํ์์ ์ฌ์ฉํ์ญ์์ค. $.store.book[0].title$.store.book[0].title ํํ์์ ์ธ๋ถํํ์ฌ ์ดํด๋ณด๊ฒ ์ต๋๋ค.$: JSON ๋ฌธ์์ ๋ฃจํธ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. ์ฆ, ์ ์ฒด ๊ตฌ์กฐ๋ฅผ ์๋ฏธํฉ๋๋ค.store: ๋ฃจํธ ๋
ธ๋ ์๋์ ๊ฐ์ฒด์ธ store ์์ฑ์ ๊ฐ๋ฆฌํต๋๋ค.book: store ๊ฐ์ฒด ์๋์ book ์์ฑ์ ์ ๊ทผํฉ๋๋ค. ์ด ์์ฑ์ ๋ฐฐ์ด์
๋๋ค.[0]: book ๋ฐฐ์ด์์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ ํํฉ๋๋ค. ์ธ๋ฑ์ค๋ 0 ๋ถํฐ ์์ํฉ๋๋ค.title: ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์ฑ
์์ title์ ๊ฐ์ ธ์ต๋๋ค.store ๊ฐ์ฒด๋ฅผ ์ฐพ๊ณ , book ๋ฐฐ์ด์ ์ ๊ทผํ ๋ค์, ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ์ ํํ์ฌ ํด๋น ํญ๋ชฉ์ title์ ์ถ์ถํฉ๋๋ค.0๋ถํฐ ์์ํฉ๋๋ค.$.store.book[?(@.category=='reference')].| Syntax | Description |
|---|---|
$ | ๋ฃจํธ ๋ ธ๋ |
@ | ํ์ฌ ๋ ธ๋ |
.node or ['node'] | ์์ ๋ ธ๋์ ์ ๊ทผ |
[index] | ๋ฐฐ์ด ์ธ๋ฑ์ฑ, 0๋ถํฐ ๊ณ์ฐํ๋ ๋ฐฉ์์ ์ง์ํฉ๋๋ค |
[start:end:step] | ๋ฐฐ์ด ์ฌ๋ผ์ด์ฑ |
* | ์์ผ๋์นด๋, ๋ชจ๋ ์์ ๋ ธ๋์ ์ผ์นํฉ๋๋ค |
.. | ์ฌ๊ท ์์ผ๋์นด๋, ๋ชจ๋ ํ์ ํญ๋ชฉ๊ณผ ์ผ์นํฉ๋๋ค |
(<expr>) | ๋์ ํํ์ |
?(<boolean expr>) | ํํฐ ์กฐ๊ฑด |
| Syntax | Description |
|---|---|
^ | ์ผ์นํ๋ ํญ๋ชฉ์ ๋ถ๋ชจ์ ์ ๊ทผํฉ๋๋ค |
~ | ์ผ์นํ๋ ํญ๋ชฉ์ ์์ฑ ์ด๋ฆ์ ๊ฐ์ ธ์ต๋๋ค(๋ฐฐ์ด๋ก ๋ฐํ) |
@null(), @boolean(), @number(), @string(), @array(), @object() | ๊ธฐ๋ณธ JSON ํ์ ์ ๊ฐ์ ธ์ต๋๋ค |
@integer() | ์ ์ ํ์ ์ ๊ฐ์ ธ์ต๋๋ค |
@scalar() | ๋ณตํฉ ํ์
์ ๊ฐ์ ธ์ค๋ฉฐ, undefined ๋ฐ ์ ํํ์ง ์์ ์ซ์๋ฅผ ํ์ฉํฉ๋๋ค(JavaScript ๊ฐ์ฒด๋ฅผ ์ฟผ๋ฆฌํ ๋) |
@other() | ์ฌ์ฉ์ ์ ์ otherTypeCallback๊ณผ ํจ๊ป ์ฌ์ฉํ ์ ์์ต๋๋ค |
@undefined(), @function(), @nonFinite() | JSON์ด ์๋ JavaScript ๊ฐ์ฒด๋ฅผ ์ฟผ๋ฆฌํ ๋ ์ฌ์ฉ๋๋ ๋น JSON ํ์ ์ ๋๋ค |
@path, @parent, @property, @parentProperty, @root | ํํฐ์ ๋จ์ถ ์ ํ์์ ๋๋ค |
` | ๋๋จธ์ง ์ํ์ค๋ฅผ ์ด์ค์ผ์ดํํฉ๋๋ค |
@['...'], ?@['...'] | ํํฐ ๋ด ์์ฑ ์ด๋ฆ์ ํน์ ๋ฌธ์๋ฅผ ์ด์ค์ผ์ดํํฉ๋๋ค |
$.. | ๋ชจ๋ ๋ถ๋ชจ ๊ตฌ์ฑ ์์๋ฅผ ๊ฐ์ ธ์ต๋๋ค |
{
"store": {
"book": [
{
"category": "reference",
"author": "Nigel Rees",
"title": "Sayings of the Century",
"price": 8.95
},
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"price": 12.99
},
{
"category": "fiction",
"author": "Herman Melville",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99
},
{
"category": "fiction",
"author": "J. R. R. Tolkien",
"title": "The Lord of the Rings",
"isbn": "0-395-19395-8",
"price": 22.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
}
}| XPath | JSONPath | Result |
|---|---|---|
/store/book/author | $.store.book[*].author | ๋ชจ๋ ์ฑ ์ ์ ์ |
//author | $..author | ๋ชจ๋ ์ ์ |
/store/* | $.store.* | store ์๋์ ๋ชจ๋ ์์ ๋
ธ๋ |
/store//price | $.store..price | ๋ชจ๋ price ํ๋ |
//book[3] | $..book[2] | ์ธ ๋ฒ์งธ ์ฑ (0 ๊ธฐ๋ฐ ์ธ๋ฑ์ค) |
//book[last()] | $..book[(@.length-1)] or $..book[-1:] | ๋ง์ง๋ง ์ฑ |
//book[position()<3] | $..book[:2] or $..book[0,1] | ์ฒ์ ๋ ๊ถ์ ์ฑ |
//book[isbn] | $..book[?(@.isbn)] | ISBN์ด ์๋ ์ฑ |
//book[price<10] | $..book[?(@.price<10)] | ๊ฐ๊ฒฉ์ด 10 ๋ฏธ๋ง์ธ ์ฑ |
//* | $..* | ๋ชจ๋ ์์ ๋ ธ๋๋ฅผ ์ฌ๊ท์ ์ผ๋ก ์ผ์น์ํต๋๋ค |