IT TIP

C를 사용하여 JSON 구문 분석

itqueen 2020. 10. 26. 21:35
반응형

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사용 했으며 권장합니다. 가볍고 오픈 라이선스로 출시됩니다.

문서는 배포에 포함되어 있습니다. 기본적으로 *_addJSON 객체를 생성하는 *_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

반응형