StringJson ÇÔ¼ö´Â json Çü½ÄÀÇ ¹®ÀÚ¿¿¡¼ jsonpath¿¡ ÇØ´çÇÏ´Â °ªÀ» ¹®ÀÚ¿·Î ¹ÝȯÇÑ´Ù.
string @StringJson(string source, string jsonPath);
ÇÔ¼öÀÎÀÚ
string source : ´ë»ó ¹®ÀÚ¿
string jsonPath: ãÀ» json °ªÀÇ °æ·Î (ÇÏ´ÜÀÇ JsonPath ÀÛ¼º¹ý Âü°í)
¹Ýȯ °ª
JsonPath¿¡ ÇØ´çÇÏ´Â json °ª.
¿¹Á¦ 1
buf = "{ "name": "John", "address": {"city": "Seoul", "street": "Main St."} }"
buf = @StringJson(buf,"$.name"); // °á°ú : buf = "John"
buf = @StringJson(buf,"$.address.city"); //°á°ú buf = "Seoul"
¿¹Á¦ 2
filepath =
"C:\\AutoBase\\Project\\ApiClientTest\\RESTAPIClient\\žç¿_log.txt";
size =
@FileGetSize(filepath);
handle = @FileOpen(filepath, "r");
if(handle != 0)
{
@FileRead(handle, buf, size,1);
@FileClose(handle);
}
buf =
@StringJson(buf,"$.inverter[0].pv");
$ST_inverter0_pv = buf;
¹®Àå¼³¸í : ÁöÁ¤ÇÑ °æ·ÎÀÇ Å¾ç¿_log.txt ÆÄÀÏÀ» UTF-8 Çü½ÄÀ¸·Î Àоî "$.inverter[0].pv" ¿¡ ÇØ´çÇÏ´Â °ªÀ» $ST_inverter0_pv ű׿¡ ÀúÀåÇÑ´Ù.
Âü°í) JSON Path ÀÛ¼º °¡À̵å
1. JSONPath ¹®¹ý ¾È³»
1-1. ±âº» ±¸Á¶
-
JSON °æ·Î´Â $ ±âÈ£·Î ½ÃÀÛÇÒ ¼ö ÀÖÀ¸¸ç, $´Â »ý·« °¡´ÉÇÕ´Ï´Ù
- °´Ã¼ÀÇ ¼Ó¼ºÀº Á¡(.) À¸·Î Á¢±ÙÇÕ´Ï´Ù
- ¹è¿ÀÇ ¿ä¼Ò´Â ´ë°ýÈ£([]) ¾È¿¡ À妽º¸¦
ÁöÁ¤ÇÕ´Ï´Ù
1-2. ¹è¿ Á¢±Ù ¹æ¹ý
- [0], [1], [2] : ƯÁ¤ À妽º ¼±ÅÃ
- [*] : ¸ðµç ¿ä¼Ò ¼±ÅÃ
- [-1] : ¸¶Áö¸· ¿ä¼Ò ¼±ÅÃ
¡Ø ¹è¿ Á¢±Ù ½Ã ´ë°ýÈ£([])´Â ¹Ýµå½Ã ÇÊ¿äÇÕ´Ï´Ù
1-3. Ç¥Çö ¿¹½Ã
°´Ã¼·Î ½ÃÀÛÇÏ´Â
JSON:
$.store.book ¶Ç´Â store.book
¹è¿·Î ½ÃÀÛÇÏ´Â JSON:
$[0].name ¶Ç´Â
[0].name
$[*].name ¶Ç´Â [*].name
1-4. ±ÇÀå»çÇ×
- ÄÚµåÀÇ ¸íÈ®¼ºÀ» À§ÇØ $ ±âÈ£¸¦ Æ÷ÇÔÇÏ´Â
°ÍÀ» ±ÇÀåÇÕ´Ï´Ù
- ÁßøµÈ ±¸Á¶ÀÇ °æ¿ì Àüü °æ·Î¸¦ ¸í½ÃÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù
2. °´Ã¼({}) Çü½ÄÀÏ °æ¿ìÀÇ ±âº» ¹®¹ý
$.name - ÃÖ»óÀ§ °´Ã¼ÀÇ 'name' °ª
$.address.city - 'address' °´Ã¼ ¾ÈÀÇ 'city' °ª
$.phones[0] - 'phones' ¹è¿ÀÇ Ã¹ ¹øÂ° Ç׸ñ
$.phones[*] - 'phones' ¹è¿ÀÇ ¸ðµç Ç׸ñ
$.phones[*].number - 'phones' ¹è¿ÀÇ ¸ðµç Ç׸ñÀÇ 'number' °ª
$.*.city - ¸ðµç ÇÏÀ§ °´Ã¼ÀÇ
'city' °ª
3. ¹è¿([]) Çü½ÄÀÏ °æ¿ìÀÇ ±âº» ¹®¹ý
$[0] - ¹è¿ÀÇ Ã¹ ¹øÂ° Ç׸ñ
$[*] - ¹è¿ÀÇ ¸ðµç
Ç׸ñ
$[0].name - ù ¹øÂ° Ç׸ñÀÇ 'name' °ª
$[*].name - ¸ðµç Ç׸ñÀÇ 'name' °ª
$[0].items[*].value - ù ¹øÂ° Ç׸ñÀÇ 'items' ¹è¿ÀÇ ¸ðµç 'value' °ª
4. ÇÊÅÍ »ç¿ë
°´Ã¼
Çü½Ä:
$.phones[?(@.type=='mobile')] - typeÀÌ 'mobile'ÀÎ Ç׸ñ
$.items[?(@.price >
100)] - price°¡ 100º¸´Ù Å« Ç׸ñ
$.phones[?(@.type=='mobile')].number - typeÀÌ
'mobile'ÀÎ Ç׸ñÀÇ number °ª
¹è¿ Çü½Ä:
$[?(@.category=='¼öÀÔ')] - category°¡ '¼öÀÔ'ÀÎ
Ç׸ñ
$[?(@.amount > 1000)] - amount°¡ 1000º¸´Ù Å« Ç׸ñ
$[?(@.category=='ÁöÃâ')].items[*] - category°¡ 'ÁöÃâ'ÀÎ Ç׸ñÀÇ ¸ðµç items
¹öÀüÁ¤º¸
ÃÖÃÊÁö¿ø: 10.3.6.24
°ü·ÃÇ׸ñ