본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
게임 목록
임의의 게임으로
커뮤니티
리버티게임 본진
리버티게임(개발)
검색
검색
보이기
계정 만들기
로그인
개인 도구
계정 만들기
로그인
이 서버는
리버티게임
의 개발용 베타 서버로, 게임 플레이 용도로 제작된 사이트가 아닙니다.
리버티게임의 자동 인증된 사용자라면 개발에 필요한 관리자 권한을
신청
할 수 있습니다.
틀 및 기능별 소도구를 필요한 문서에만 선택적으로 로딩하는 테스트를 진행하고 있습니다. 작동하지 않는 문서가 있다면
담당자
에게 알려주세요.
모듈:JSON/설명문서 문서 원본 보기
모듈
토론
한국어
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
새로 고침
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
특수 문서 목록
문서 정보
축약된 URL 얻기
보이기
사이드바로 이동
숨기기
←
모듈:JSON/설명문서
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
문서의 원본을 보거나 복사할 수 있습니다.
JSON 데이터를 읽어들여 값을 반환하거나, 데이터를 수정합니다.<!-- 이 모듈을 사용해 데이터를 수정한 뒤, {{틀|}}을 함께 사용하시면 좋습니다. --> == 주의사항 == 이 모듈은 <code>null</code>을 없는 값으로 간주합니다. 따라서 null 값을 보존하려면 이 모듈을 사용하지 말것을 권장합니다. <source lang="json"> 사용전: {"var1": true, "var2": null, "var3": false} 사용후: {"var1": true, "var3": false} </source> 루아에서는 배열의 순서가 1부터 시작합니다. 이 점 유의해 주세요. <source lang="json">["aaa", "bbb", "ccc", "ddd"]</source> {| class="wikitable" ! JS ! 값 ! Lua |- ! 0 | aaa ! 1 |- ! 1 | bbb ! 2 |- ! 2 | ccc ! 3 |- ! 3 | ddd ! 4 |} 객체의 경우 속성이 표시되는 순서가 바뀔 수 있습니다. 단, 배열은 해당되지 않으며 객체의 순서가 바뀌어도 속성명은 변하지 않으므로 변수를 호출할 때에 큰 문제는 없습니다. <source lang="json"> 사용전: {"var1": "aaaa", "var2": 1234, "var3": true} [1, 3, 5, 9] 사용후: {"var2":1234,"var3":true,"var1": "aaaa"} [1,3,5,9] </source> == 사용법 == === 변수 === 객체를 사용한다면 속성명을 그대로 입력하시면 됩니다. JSON에서는 문자열, 숫자, 부울, 배열, 객체, null을 다루며, 이 틀에서 값을 입력할 때 기본적으로는 문자열으로 처리되지만, 각각의 형식에 맞춰서 입력한다면 자동으로 타입이 적용됩니다. 만약 강제적으로 문자열을 적용하고 싶다면 <code>""</code>로 이스케이프하실 수 있습니다. 만약, 이스케이프된 문자열을 ""로 묶고 싶으시다면 그 안에 ""를 더 넣으실 수 있습니다. (예시: <code>"true"</code>→<code>true</code>, <code>""123""</code>→<code>"123"</code>) 칸을 비우시면 없는 값으로 간주되어 내용이 삭제됩니다. 만약, 빈 문자열을 사용하고 싶으시다면 <code>""</code>을 입력하세요. 칸을 비우기 곤란하시다면 <code>null</code>을 사용하여 내용을 지우실 수 있습니다. null 역시 마찬가지로 <code>"null"</code>과 같이 이스케이프가 가능합니다. === JSON 코드 === JSON 코드는 다음과 같은 다양한 상황에서 입력이 가능합니다. 아래와 같은 내용을 두번째 변수(JSON 코드)에 입력해 주세요. * JSON 코드 직접 입력 :JSON 코드가 반환되는 이 모듈도 사용하실 수 있습니다. * JSON 문서 불러오기 :JSON 문서를 불러와서 입력하시려면 다음과 같이 틀의 형태로 입력해 주세요. <pre>{{사용자:홍길동/데이터.json}} {{:한게임/DB}}</pre> * 빈 JSON 코드 :비어있는 JSON 코드를 사용하시려면 <code>{}</code>나 <code>[]</code>만 입력해 주세요. === 새로 만들기 === <nowiki>{{</nowiki>[[도움말:게임 만들기#.23switch|#switch]]:<nowiki>}}</nowiki>문법과 비슷하게 JSON 데이터를 새로 만들 수 있습니다. <pre>{{#invoke:JSON|new|(값1)|(변수a)=(값a)|...}}</pre> 변수를 지정하지 않은 경우 변수는 틀과 같이 순서로 지정이 되며, 배열을 만들고자 할 경우 변수 없이 값만 입력하시면 됩니다. 이 기능은 앞서 말했다시피 #switch 문법과 유사하기 때문에 호환이 될 수 있습니다. 앞부분의 <code><nowiki>{{#switch:{{{1}}}</nowiki></code>부분을 한번 <code><nowiki>{{풀기:#invoke:JSON|new</nowiki></code>로 변경해 보세요. switch가 JSON으로 마법같이 변신할겁니다. <pre> {{#switch:{{{1}}} |var1=aaaa |var2=1234 |var3=true }} </pre> <pre> {{풀기:#invoke:JSON|new |var1=aaaa |var2=1234 |var3=true }} </pre> <source lang="json">{ "var2": 1234, "var3": true, "var1": "aaaa" }</source> 어때요, 신기하지 않나요? 이 기능과 함께 switch에서 JSON으로 갈아타세요! === 변수값 얻기 === JSON 데이터에 있는 변수의 값을 얻으려면 다음과 같이 입력합니다: <pre>{{#invoke:JSON|get|(JSON 코드)|(변수)}}</pre> 위와 같이 입력하시면 해당 변수의 값만 그대로 나오며, 값이 없는 경우 기본값이 나옵니다. 예를 들어, <code>var</code> 변수의 값을 얻는다면 이렇게 입력하세요: <pre>{{#invoke:JSON|get|(JSON 코드)|var}}</pre> {{틀|JSON}}을 이용하면 더 간단히 입력하실 수 있습니다. 자세한 내용은 해당 문서를 확인해 주세요. === 변수값 변경 === {{#vardefine:value|{{#rand:0|9}}}} {{#vardefine:bar|<choose><option>true</option><option>false</option></choose>}} JSON 데이터에 있는 변수의 값을 변경하려면 다음과 같이 입력합니다: <pre>{{#invoke:JSON|set|(JSON 코드)|(변수)|(값)}}</pre> 위와 같이 입력하시면 해당 변수의 값이 변경된 JSON 코드가 반환됩니다. 예를 들어, <code>var</code> 변수의 값을 <code>{{#var:value}}</code>로 변경할 경우 이렇게 입력하세요: <nowiki>{{#invoke:JSON|set|(JSON 코드)|var|</nowiki>{{#var:value}}<nowiki>}}</nowiki> * 변수 추가 :JSON 데이터에 있는 변수를 추가하려면 변수값을 변경할 때와 같이 입력하시면 됩니다. * 변수 제거 :JSON 데이터에 있는 변수를 제거하려면 다음과 같이 변수값을 변경할 때의 값을 비워두거나 <code>null</code>을 입력하시면 됩니다. :<pre>{{#invoke:JSON|set|(JSON 코드)|(변수)}}</pre> :위와 같이 입력하시면 입력한 JSON 코드에서 해당 변수가 제거된 값이 나옵니다. : :예를 들어, <code>var</code> 변수를 제거하려면 이렇게 입력하세요: :<pre>{{#invoke:JSON|set|(JSON 코드)|var}}</pre> === 코드 합치기 === 두 JSON 코드를 합칩니다. new랑 궁합이 매우 좋습니다. <pre>{{#invoke:JSON|mer|(JSON 코드1)|(JSON 코드2)|...}}</pre> 만약 중복된 항목이 있으면 2번 코드의 값으로 설정됩니다. 이를 응용하여 내용 수정에도 사용하실 수 있습니다. 만약 <code>var1</code>의 값을 <code>{{#var:value}}</code>로 바꾸고 <code>var2</code>의 값을 <code>{{#var:bar}}</code>로 바꾸려는 경우 다음과 같이 입력해 주세요. 다만 new는 값을 제거하는 데에는 이용하실 수 없으며 JSON 코드를 직접 입력하셔야 합니다. <nowiki>{{#invoke:JSON|mer|(JSON 코드)|{{#invoke:JSON|new|var1=</nowiki>{{#var:value}}<nowiki>|var2=</nowiki>{{#var:bar}}<nowiki>}}}}</nowiki> === 변수 제거 === 여러개의 변수를 일괄적으로 제거합니다. <pre>{{#invoke:JSON|del|(JSON 코드)|(변수1)|(변수2)|...}}</pre> === 작업 조합 === 만약 여러 작업을 동시에 하고 싶다면 두번째 변수에 이 틀을 다시 넣을 수 있습니다. 이런식으로 말이지요: <nowiki>{{#invoke:JSON|get| {{#invoke:JSON|del| {{#invoke:JSON|mer| {{#invoke:JSON|new|var=</nowiki><choose><option>true</option><option>false</option></choose><nowiki>}}| {{#invoke:JSON|new |var1=</nowiki>{{#rand:0|9}}<nowiki> |var2={{#invoke:JSON|new|ㅁㄴㅇㄹ}} }}}} |var}} |var</nowiki>{{#rand:1|2}}<nowiki>}}</nowiki> == [[도보시오]] == * [[틀:JSON]]
이 문서에서 사용한 틀:
틀:Rand
(
원본 보기
)
틀:캐싱방지
(
원본 보기
)
틀:틀
(
원본 보기
)
모듈:Random
(
원본 보기
)
모듈:JSON/설명문서
문서로 돌아갑니다.