JSONSetElement
목적
대상체 이름, 배열 인덱스 또는 경로로 지정된 JSON 데이터에 요소를 추가하거나 수정합니다.
포맷
JSONSetElement(json;키 또는 인덱스 또는 경로;값;유형)
매개 변수
json - JSON 대상체나 배열을 포함하는 임의의 텍스트 표현식 또는 필드
키 또는 인덱스 또는 경로 - JSON 대상체 이름(키), 배열 인덱스 또는 경로를 지정하는 임의의 텍스트 표현식 또는 필드
JSON 함수 작업하기를 참조하십시오.
값 - 숫자, 텍스트 또는 JSON 데이터를 포함하는 임의의 표현식 또는 필드.
유형 - 설정할 데이터 유형을 지정하는 이름이 붙여진 값(아래 참조).
반환되는 데이터 유형
텍스트
다음에서 발생
FileMaker Pro 16.0
설명
이 함수는 지정된 키 또는 인덱스 또는 경로에 값이 있는 json을 반환합니다. json 매개 변수가 비어 있는 경우(""), 키 또는 인덱스 또는 경로 매개 변수의 첫 부분이 "[" 문자로 시작하지 않으면 이 함수는 JSON 대상체({ } 괄호 안)에 값을 추가합니다. 그러한 경우에 이 함수는 값을 JSON 배열([ ] 괄호 안)에 추가합니다.
유형 매개 변수는 다음 중 하나의 이름이 붙여진 값을 사용하여 값 매개 변수의 데이터 유형을 지정합니다.
유형 | 지정 값 |
JSONString | 문자열(" ") |
JSONNumber | 숫자 |
JSONObject | 대상체( { } ) |
JSONArray | 배열( [ ] ) |
JSONBoolean | 부울 |
JSONNull | Null |
JSONRaw | JSON에 의해 결정 |
값이
true(소문자로)인 경우
JSONBoolean은 true로 처리됩니다. 그렇지 않은 경우
값이 true인지 false인지 여부는
If 함수의
테스트 매개 변수와 동일한 방법으로 결정됩니다.
JSONRaw는 JSON 파서에서 값을 처리합니다. 값이 유효한 JSON 데이터인 경우 이 함수의 반환 값에 분석 결과가 사용됩니다. 그렇지 않은 경우 값은 JSON 문자열로 사용됩니다.
각 요소를 [ ] 괄호로 묶은 키 또는 인덱스 또는 경로, 값 및 유형 매개 변수 세트를 추가로 제공하여 여러 요소를 구성할 수 있습니다. 다음 구문은 N 요소를 한번에 구성합니다.
JSONSetElement ( json ;
[ 키 또는 인덱스 또는 경로1 ; 값1 ; 유형1 ] ;
[ 키 또는 인덱스 또는 경로2 ; 값2 ; 유형2 ] ;
...
[ 키 또는 인덱스 또는 경로N ; 값N ; 유형N ] ;
)
참고
•이 함수는 런타임 솔루션에서 지원되지 않으며 "?"를 반환합니다.
예제 1
JSON 대상체의 루트에 키와 키값을 추가합니다.
JSONSetElement ( "{ \"a\" : 11 }" ; "b" ; 22.23 ; JSONNumber )는 {"a":11,"b":22.23}을 반환합니다.
예제 2
JSON 대상체를 다른 JSON 대상체의 요소로 추가합니다. $$JSON 변수가 다음과 같이 설정되어 있는 경우
{
"a" : {
"id" : 12,
"lnk" : 34
}
}
그런 다음
JSONFormatElements (
JSONSetElement ( $$JSON ; "b" ; "{ \"id\" : 14, \"lnk\" : 73 } " ;
JSONObject
)
)
다음을 반환합니다.
{
"a" :
{
"id" : 12,
"lnk" : 34
},
"b" :
{
"id" : 14,
"link" : 73
}
}
예제 3
$$JSON 변수에 저장된
JSON 데이터 예제에서 배열의 첫 번째 "제품" 요소에 있는 "특별 메뉴" 및 "재고" 키값을 변경합니다.
JSONFormatElements (
JSONSetElement ( $$JSON ;
[ "제과.제품[0].특별 메뉴" ; 0 ; JSONBoolean ] ;
[ "제과.제품[0].재고" ; 0 ; JSONNumber ]
)
)
$$JSON에 있는 데이터와 동일하지만 "제품" 배열의 첫 번째 요소가 다음으로 변경된 데이터를 반환합니다.
{
"범주" : "빵",
"id" : "FB1",
"이름" : "도너츠",
"가격" : 1.99,
"특별 메뉴" : false,
"재고" : 0
}
관련 주제