# JsonSet - 스크립트 및 차트 함수

JsonSet()은 JSON(JavaScript Object Notation) 데이터가 포함된 문자열을 수정합니다. 경로로 지정된 새 위치로 JSON 값을 설정하거나 삽입할 수 있습니다. 데이터는 유효한 JSON이어야 하지만 추가 공백이나 줄 바꿈을 포함할 수 있습니다.

정보 메모JsonSet를 사용하여 원하는 수의 이름-값 쌍을 추가할 수 있습니다.

구문:

value JsonSet(json, path, value)

반환 데이터 유형: 이중

인수

| 인수 | 설명 |
| --- | --- |
| json | JSON 데이터를 포함하는 문자열. |
| path | 경로는 [RFC 6901](https://datatracker.ietf.org/doc/html/rfc6901)에 따라 지정해야 합니다. 이를 통해 복잡한 하위 문자열 또는 인덱스 함수 및 연결을 사용하지 않고도 JSON 데이터 내부에 속성을 구축할 수 있습니다. |
| value | JSON 형식의 새 문자열 값입니다. |

예: 유효한 차트 표현식과 잘못된 차트 표현식

| 예 | 결과 |
| --- | --- |
| `JsonSet( '{}','/a','"b"' )` | `{"a":"b"}`를 반환합니다. |
| `JsonSet( '[]','/0','"x"' )` | `["x"]`를 반환합니다. |
| `JsonSet( '"abc"','','123' )` | `123`를 반환합니다. |
| `JsonSet( '"abc"','/x','123' )` | `null`를 반환합니다. 경로가 JSON 데이터의 유효한 부분을 가리키지 않습니다. |
| `JsonSet( '{"a":{"b":"c"}}','a/b','"x"' )` | `null`를 반환합니다. 경로가 잘못되었습니다. |
| `JsonSet( '{"a":"b"}','/a','abc' )` | `null`를 반환합니다. 값이 유효한 JSON이 아닙니다. 문자열은 따옴표로 묶어야 합니다. |

## 예 - JsonSet 기본 사항

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonSet.htm)

#### 차트 표현식

개요

JSON 데이터는 한 줄의 텍스트 문자열로 수신됩니다. 이에 따라 품목 가격과 총 주문 가격을 업데이트하려고 합니다.

데이터 로드 편집기를 열고 새 섹션에 아래 로드 스크립트를 추가합니다.

로드 스크립트에는 다음이 포함됩니다.

* `Example`이라는 데이터 테이블에 로드되는 데이터 집합입니다.

* 데이터 테이블의 한 필드는 `OrderDetails`입니다.

로드 스크립트

```
Example:
Load  * 
INLINE [OrderDetails
'{ "order_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total_price": 2400 }'
];
```

결과

데이터를 로드하고 시트를 엽니다. 새 테이블을 만들고 이 필드를 차원으로 추가합니다.

* `OrderDetails`

다음 측정값을 만듭니다.

* `JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total_price',2200)`은 JSON 문자열의 각 키에 대한 올바른 경로를 사용하여 가격을 `1100`으로, 총 가격을 `2200`으로 설정합니다.

결과 테이블

| OrderDetails | JsonSet(JsonSet(OrderDetails,'/items/price',1100),'/total\_price',2200) |
| --- | --- |
| { "order\_id": "12345", "customer": { "name": "John Doe", "email": "john.doe@example.com"}, "items": {"product": "Laptop", "quantity": 2, "price": 1200 }, "total\_price": 2400 } | {"order\_id":"12345","customer":{"name":"John Doe","email":"john.doe@example.com"},"items":{"product":"Laptop","quantity":2,"price":1100},"total\_price":2200} |

측정값 출력은 `price` 및 `total price` 키를 각각 `1100` 및 `2200`으로 업데이트합니다.

관련 항목:

* [IsJson - 스크립트 및 차트 함수](https://help.qlik.com/ko-KR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/IsJson.htm)

* [JsonGet - 스크립트 및 차트 함수](https://help.qlik.com/ko-KR/sense/November2025/Subsystems/Hub/Content/Sense_Hub/Scripting/StringFunctions/JsonGet.htm)