다음 섹션에서는 Lua 스크립팅 언어로 구현되는 서버 측 코드의 일부 디자인 요소를 살펴보겠습니다. 전체 코드는 Barracuda 응용 프로그램 서버 및 Mako Server와 같은 파생 제품에서 다운로드하여 실행할 수 있습니다. 예를 들어, 서버 코드는 다음과 같이 Mako Server에서 실행할 수 있습니다: 구조적으로 말하자면, JSON은 작성자가 ISink 파생 클래스에 쓰고, 계층구조에서 손으로 싱크는 StringSink입니다. JSON은 ISource 파생 클래스에서 읽습니다(이 경우 StringSource). 이름에서 알 수 있듯이 JSON 콘텐츠의 내부 컨테이너는 실제로 std::문자열로 대부분의 경우 매우 적합합니다. 그러나 이 아키텍처도 매우 유연하다는 점을 지적할 가치가 있습니다. 예를 들어, 소켓이나 파일에 JSON을 직접 작성하려면 (잠재적으로 많은 양의 버퍼링을 피하기 위해 말하자면) JSON::ISink 클래스에서 상속하고 UML 클래스에 표시된 대로 관련 연산자<<()의 함수를 구현하기만 하면 됩니다. 위의 다이어그램. 이미 설명했듯이 값, mValue, wvalue 및 wmValue의 네 가지 유형의 JSON 값 클래스 중에서 선택할 수 있습니다. 일반적으로 단일 형식을 선택하고 이를 고수하지만 컴파일러는 템플릿을 처리하여 네 가지 형식 모두에 대한 클래스 집합을 생성합니다.

이렇게 하면 필요한 빌드 시간보다 더 길고 중간 파일이 커지게 됩니다. 아래 json_spirit_value.h에서 관련 줄에 주석을 달아 원하지 않는 값 형식을 비활성화할 수 있습니다. 이러한 개체는 임의의 형식을 인코딩하고 디코딩하는 규칙 집합을 제공합니다. 따라서 JSON 개체에 대한 C ++ 클래스를 만들고 특수 생성자를 작성해 보겠습니다. 이 예제에는 많은 일이 있으므로 한 번에 한 단계나 한 단계로 살펴보겠습니다. 먼저, 좋은 값을 저장 하기 위해 my_type 개체를 만듭니다. 그런 다음 GitHub 다운로드에는 Windows 및 Linux에 대한 몇 가지 예제가 포함되어 있습니다. 다음과 같이 Linux에서 IoT 예제를 사용할 준비가 된 JSON 파서를 지속적으로 구문 분석합니다. TCP/IP는 와이어를 통해 메시지를 보내는 데 사용할 때 프레임 정보를 포함하지 않는 스트림 기반 프로토콜입니다.

IoT 프로토콜은 데이터를 전송할 때 TCP/IP 위에 프레임 정보를 추가하여 전선에서 패킷을 쉽게 보낼 수 있도록 합니다. 예를 들어 WebSocket 프로토콜은 데이터에 크기 헤더를 추가하고 WebSocket 스택은 스택을 사용하는 응용 프로그램 디자이너에 대한 패킷 기반 API를 제공합니다. MQTT 및 SMQ와 같은 Pub/Sub 프로토콜도 패킷 기반 API를 제공합니다. 버전 3.00에서 JSON Spirit는 구문 분석중인 텍스트의 형식 오류 위치를 보고하는 기능을 제공합니다. 이러한 함수는 오류가 발견되면 false를 반환하는 대신 json_spirit:Error_position 예외를 throw한다는 점을 제외하면 일반 읽기 함수와 동일합니다. 이러한 함수는 일반 읽기 함수보다 약 3배 느리게 실행됩니다. jsonv::extractor는 jsonv::value를 가지고 일부 C++ 형식을 만드는 방법을 알고 있는 형식입니다. 이 경우 형식의 생성자 호출 하는 방법을 알고 있는 하위 형식인 jsonv::extractor_construction을 만듭니다.