- www.mql5.com
1. 크기, 20KB 대 30KB
2. 모든 JSON 구조로 유연하게 작업 가능
- 값 유형을 정의하는 메서드가 있어 값이 다른 유형일 수 있는 경우를 처리할 수 있음
- 객체 키를 가져오는 메서드가 있어 키를 미리 알 수 없는 경우를 처리할 수 있음
- 사용자 친화적인 라이브러리 인터페이스로 JSON 구조를 편리하고 이해하기 쉽게 채울 수 있습니다.
3. 명확하고 사람이 읽을 수 있는 소스 코드
- 라이브러리의 작업을 쉽게 이해할 수 있어 작업의 원리가 투명합니다
- 라이브러리의 명확한 구조로 네트워크 요청 및 응답을 편리하게 디버그할 수 있습니다
- 오퍼레이터 오버로딩을 사용하지 않고 명확한 이름을 가진 메서드를 제공하여 모든 개발자가 코드를 이해할 수 있도록 합니다.
라이브러리가 러시아인들에게만 표시되는 이유를 알려주시겠습니까?
네트워크 쿼리를 위한 데이터를 생성하는 데 매우 편리할 것 같지만 아무도 알아채고 사용할 가능성은 거의 없다고 생각합니다.
코드베이스는 (적어도 지금은) 그런 식으로 만들어지기 때문에 기본적으로 코드는 한 언어 버전으로 만 등록되고 (영어 브랜치에서도 할 수 있음) 일부 조건에서만 다른 언어로 전송되도록 보장됩니다 (인기도, 중재자의 명령 또는 다른 방법으로 자동으로 지정해야 함).
json 테마 자체에 관해서는 예를 들어 algobook의 toyjson.mqh를 최소한으로 구현한 것도 있습니다.
- www.mql5.com
1. 크기, 20KB 대 30KB
2. 모든 JSON 구조로 유연하게 작업 가능
- 값 유형을 정의하는 메서드가 있어 값이 다른 유형일 수 있는 경우를 처리할 수 있음
- 객체 키를 가져오는 메서드가 있어 키를 미리 알 수 없는 경우를 처리할 수 있음
- 편리한 라이브러리 인터페이스, JSON 구조를 편리하고 이해하기 쉽게 작성할 수 있습니다.
3. 명확하고 사람이 읽을 수 있는 소스 코드
- 라이브러리의 작업을 쉽게 이해할 수 있어 작업의 원리가 투명합니다
- 라이브러리의 명확한 구조로 네트워크 요청 및 응답을 편리하게 디버그할 수 있습니다
- 오퍼레이터 오버로딩을 사용하지 않고 명확한 이름의 메서드를 제공하여 모든 개발자가 코드를 이해할 수 있습니다.
여기서 나는 심지어 "이해할 수 있고 사람이 읽을 수있는 소스 코드"를보기로 결정했습니다 :-)
포인트 3을 지우십시오. jAson의 저자처럼 주석과 문서를 작성하는 데 신경 쓰지 않았습니다. 그리고 운영자를 사용하면 사용자에게 더 편리하고 명확하므로이를 피하는 것은 장점보다 단점에 가깝습니다.
코드베이스가 그렇게 만들어졌기 때문에(적어도 지금은) 기본적으로 코드가 한 언어 버전으로만 등록되고(영어 브랜치에서도 할 수 있습니다) 다른 언어로 포팅하는 것은 특정 조건(인기도, 운영자의 명령 또는 다른 방식으로 자동 지정되어야 함)에서만 가능합니다.
json 테마 자체에 관해서는 예를 들어 algobook의 toyjson.mqh를 최소한으로 구현한 것도 있습니다.
나는 정말로 아주 좋은 버전도 있다고 생각합니다
그러나 어쨌든이 라이브러리는 내가 구현 한 인터페이스를 사용하기 위해 구현 한 인터페이스를 좋아할 청중을 찾을 것이라고 생각합니다.
제이슨을 오랫동안 사용해 왔습니다. 이제 책에 나온 ToyJson3을 포함한 3개의 라이브러리의 속도를 비교하기로 결정했습니다. 샘플 Json으로 768Kb 크기의 바이낸스 "exchangeInfo"에 대한 응답을 사용했습니다. 라이브러리가 문자열에서 읽을 때 전체를 파싱한 다음 한 문자를 선택하고 모든 데이터를 읽었습니다. 결과:
JAson - 122ms
ToyJson3 - 54ms
json - 48ms
게다가 json은 역직렬화뿐만 아니라 직렬화도 지원하며, 이는 바이낸스 선물 API에 필요합니다. 다른 라이브러리에도 있는지 모르겠지만 다른 사람의 코드를 파싱하기는 어렵습니다.
하지만 저는 OOP에 능숙하지 않아서 이 구조를 전혀 이해하지 못합니다:
JSON::Object* json1 = new JSON::Object() .setProperty("number", 123456) .setProperty("string", "text") .setProperty("boolean", true) .setProperty("object", new JSON::Object() .setProperty("number", 123456) .setProperty("string", "text") .setProperty("boolean", true) .setProperty("array", new JSON::Array()) ) .setProperty("array", new JSON::Array() .add(true) // 부울 .add(123456) // 숫자 .add("string") // 문자열 .add(new JSON::Object() .setProperty("number", 123456) .setProperty("string", "text") ) .add(new JSON::Array() .add(true) .add(123456) .add("string") ) ); string exampleText = json1.toString();



JSON:
JSON 형식의 직렬화 및 역직렬화
Author: Kuzma Shevelev