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()