StringJson

 

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

 

°ü·ÃÇ׸ñ

@StringIndexOf()

@StringSubstring()

@StringTrim()

@StringTrimEnd()

@StringTrimStart()

@StringUnicodeToAnsi()