JSONSetElement

대상체 이름, 배열 인덱스 또는 경로로 지정된 JSON 데이터에 요소를 추가하거나 수정합니다.

포맷 

JSONSetElement(json ; 키 또는 인덱스 ; 값 ; 유형)

매개 변수 

json - JSON 대상체나 배열을 포함하는 임의의 텍스트 표현식 또는 필드

키 또는 인덱스 또는 경로 - JSON 대상체 이름(키), 배열 인덱스 또는 경로를 지정하는 임의의 텍스트 표현식 또는 필드 JSON 함수 작업하기를 참조하십시오.

- 숫자, 텍스트 또는 JSON 데이터를 포함하는 임의의 표현식 또는 필드.

유형 - 설정할 데이터 유형을 지정하는 숫자 값(아래 참조).

반환되는 데이터 유형 

텍스트

다음 버전에서 시작됨 

16.0

설명 

이 함수는 지정된 키 또는 인덱스 또는 경로이 있는 json을 반환합니다. json 매개 변수가 비어 있는 경우(""), 키 또는 인덱스 또는 경로 매개 변수의 첫 부분이 "[" 문자로 시작하지 않으면 이 함수는 JSON 대상체({ } 괄호 안)에 을 추가합니다. 그러한 경우에 이 함수는 을 JSON 배열([ ] 괄호 안)에 추가합니다.

유형 매개 변수의 경우, 다음 값 중 하나를 사용하십시오. json에 추가되면, 유형 매개 변수는 을 특정 JSON 유형으로 변환할지 또는 유형을 변경하지 않고 을 삽입할지 지정합니다.

유형 매개 변수1

매개 변수의 입력 유형

출력 유형

JSONString(1)

FileMaker 텍스트

JSON 문자열(" ")

JSONNumber(2)

FileMaker 숫자

JSON 숫자

JSONObject(3)

JSON 대상체

JSON 대상체({ })

JSONArray(4)

JSON 배열

JSON 배열([ ])

JSONBoolean(5)

FileMaker 값 또는 JSON 부울 값

JSON 부울

JSONNull(6)

유형이 무시됩니다

JSON null

JSONRaw(0)

JSON 요소

JSON 요소(또는 이 유효한 JSON이 아닌 경우 JSON 문자열)

  1. 괄호에 있는 이름이 있는 상수 또는 숫자 값을 인용 부호 없이 사용하여 유형을 지정할 수 있습니다(예: JSONString 또는 1).

JSONBoolean을 사용할 때, true이거나 0이 아닌 숫자인 경우 true로 처리되며 false 또는 0인 경우 false로 처리됩니다. 그렇지 않은 경우 이 true인지 false인지 여부는 If 함수테스트 매개 변수와 동일한 방법으로 결정됩니다.

JSONRaw를 사용할 때, JSON 파서는 값이 유효한 구문을 사용하는지 확인하기 위해 을 처리합니다. 이 유효한 JSON인 경우, 아무 요소도 JSON 데이터 유형으로 변환하지 않고 분석 결과가 이 함수의 반환 값에 사용됩니다. 의 첫 번째 JSON 요소 뒤에 있는 모든 문자는 무시됩니다(예: 이 "4,2"인 경우 쉼표는 JSON 구문에서 요소 구분자이기 때문에 "4"만 삽입됨). 이 유효한 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 대상체)를 추가한 다음, "[:]" 구문을 사용하여 해당 요소를 배열의 마지막 요소로 참조해 대상체에 다른 키 값 쌍을 추가합니다.

복사
JSONSetElement( "[]"; 
    ["[+].a", 5, JSONNumber] ; 
    ["[:].b", 6, JSONNumber]
)

[{"a":5,"b":6}]을 반환합니다.

예제 3 

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,
        "lnk" : 73
    }
}

예제 4 

$$JSON 변수에 저장된 JSON 데이터 예제에서 배열의 첫 번째 "제품" 요소에 있는 "특별 메뉴" 및 "재고" 키 값을 변경합니다.

복사
JSONFormatElements(
   JSONSetElement($$JSON ; 
   [ "제과.제품[0].특별 메뉴" ; 0 ; JSONBoolean ] ; 
   [ "제과.제품[0].재고" ; 0 ; JSONNumber ] 
   )
)

$$JSON에 있는 데이터와 동일하지만 "제품" 배열의 첫 번째 요소가 다음으로 변경된 데이터를 반환합니다.

복사
{
    "범주" : "빵",
    "id" : "FB1",
    "이름" : "도너츠",
    "가격" : 1.99,
    "특별 메뉴" : false,
    "재고" : 0
}