C를 사용하여 JSON 구문 분석
C에서 JSON을 구문 분석하는 좋은 방법을 찾으려고합니다. 정말 큰 라이브러리 나 아무것도 필요하지 않습니다. 최소한의 기능을 갖춘 작고 가벼운 것이지만 좋은 문서입니다.
나를 가리킬 수있는 사람이 있습니까?
Json은 시작하기에 큰 언어가 아니므로 라이브러리는 작을 가능성이 높습니다 (적어도 Xml 라이브러리보다 작음).
Json.org에 링크 된 수많은 C 라이브러리가 있습니다 . 아마도 그들 중 하나가 당신을 위해 잘 작동 할 것입니다.
cJSON 은 괜찮은 API를 가지고 있고 작습니다 (파일 2 개, ~ 700 줄). 처음에 본 다른 JSON 파서 중 상당수는 거대했습니다. JSON을 파싱하고 싶습니다.
편집 : 우리는 수년에 걸쳐 cJSON을 약간 개선 했습니다.
Jsmn은 매우 최소한이며 작업 할 수있는 기능은 두 가지뿐입니다.
http://zserge.bitbucket.org/jsmn.html
NXJSON 은 모든 기능을 갖추고 있지만 매우 작은 (최대 400 줄의 코드) JSON 파서로 API를 사용하기 쉽습니다.
const nx_json* json=nx_json_parse_utf8(code);
printf("hello=%s\n", nx_json_get(json, "hello")->text_value);
const nx_json* arr=nx_json_get(json, "my-array");
int i;
for (i=0; i<arr->length; i++) {
const nx_json* item=nx_json_item(arr, i);
printf("arr[%d]=(%d) %ld\n", i, (int)item->type, item->int_value);
}
nx_json_free(json);
Jansson을 볼 수 있습니다
웹 사이트는 다음과 같이 설명합니다. Jansson은 JSON 데이터를 인코딩, 디코딩 및 조작하기위한 C 라이브러리입니다. 특징 :
- 간단하고 직관적 인 API 및 데이터 모델
- JSON으로 인코딩 및 디코딩 가능
- 포괄적 인 문서
- 다른 라이브러리에 대한 종속성 없음
- 전체 유니 코드 지원 (UTF-8)
- 광범위한 테스트 스위트
작업 프로젝트에 JSON-C 를 사용 했으며 권장합니다. 가볍고 오픈 라이선스로 출시됩니다.
문서는 배포에 포함되어 있습니다. 기본적으로 *_add
JSON 객체를 생성하는 *_put
함수, 메모리를 해제하는 동등한 함수, 유형 및 출력 객체를 문자열 표현으로 변환하는 유틸리티 함수가 있습니다.
라이선스를 통해 프로젝트에 포함 할 수 있습니다. 우리는 이것을 메인 빌드와 연결된 정적 라이브러리로 JSON-C를 컴파일하는 방식으로 사용했습니다. 이렇게하면 종속성에 대해 걱정할 필요가 없습니다 (Xcode 설치 제외).
JSON-C는 OS X (x86 Intel) 및 Linux (x86 Intel)에서 우연없이 우리를 위해 구축되었습니다. 프로젝트를 이식 할 수 있어야한다면 시작하는 것이 좋습니다.
임의의 JSON 구조를 파싱해야합니까, 아니면 애플리케이션에 특정한 데이터 만 파싱해야합니까? 후자의 경우 JSON 키를 값에 매핑하는 해시 테이블 / 맵 구조를 생성 할 필요가 없으므로 훨씬 가볍고 효율적으로 만들 수 있습니다. 대신 데이터를 구조체 필드 등에 직접 저장할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/6673936/parsing-json-using-c
'IT TIP' 카테고리의 다른 글
각도 2 정렬 및 필터 (0) | 2020.10.26 |
---|---|
복사 또는 rsync 명령 (0) | 2020.10.26 |
Android에서 호스트 파일을 변경하는 방법 (0) | 2020.10.26 |
두 필드에서 그룹화 사용 및 SQL에서 개수 (0) | 2020.10.26 |
Linux 명령 끝에있는 "&"는 무엇을 의미합니까? (0) | 2020.10.26 |