JSON 입력

C 출력

JSON을 C로 변환이란?

C에는 기본 JSON 타입이 없습니다. json-ccJSON 같은 라이브러리가 런타임에 JSON을 파싱합니다. 이 도구는 JSON에서 C struct를 생성하여 파싱된 데이터를 타입이 있는 구조에 매핑할 수 있게 합니다. JSON 명세가 입력 형식을 정의합니다.

변환은 브라우저에서 실행됩니다. 설정 패널에서 struct 이름을 설정하세요. 서버로 전송되는 데이터는 없습니다. 생성된 struct는 C 프로젝트에서 동작합니다. C++에는 JSON을 C++로를 사용하여 클래스와 std::vector를 활용하세요.

이 도구 사용 방법

1

JSON 붙여넣기 또는 업로드

JSON을 붙여넣거나 파일을 업로드하세요. 설정 패널에서 struct 이름을 설정하세요. 유효하지 않은 JSON은 오류를 표시합니다. 먼저 JSON 검증기로 문법을 확인하세요.

2

C 출력 검토

오른쪽 패널에 생성된 C struct가 표시됩니다. cJSON이나 json-c를 사용하여 JSON을 파싱하고 이 struct에 값을 채우세요. 문자열과 배열을 채울 때 메모리를 관리해야 합니다.

3

복사 또는 다운로드

<strong>복사</strong> 또는 <strong>다운로드</strong>를 사용하세요. 먼저 JSON을 포맷하려면 JSON 포매터를 사용하세요. 검증을 위해서는 JSON 검증기를 사용하세요.

JSON을 C로 변환 예시

JSON 객체에서 C struct를 생성하는 예시입니다.

예시: 가입자 레코드

JSON 입력:

입력

생성된 C 출력:

출력

JSON을 C로 변환이 유용한 경우

REST API나 설정 파일을 사용하는 임베디드 시스템, 펌웨어, 레거시 C 코드를 작성할 때 JSON에 대한 struct 정의가 필요합니다. 여기에 샘플을 붙여넣으면 cJSON이나 json-c와 함께 사용할 수 있는 C struct를 얻을 수 있습니다. 복잡한 중첩 JSON에 대한 struct를 수동으로 작성하는 것은 오류가 발생하기 쉽습니다. 이 도구는 샘플에서 구조를 추론합니다. 특정 값을 먼저 추출하려면 jq를 사용하세요.

자주 묻는 질문

C용 JSON 라이브러리는 어떤 것을 사용하나요?

cJSON은 가볍고 널리 사용됩니다. json-c도 또 다른 선택지입니다. 둘 다 JSON을 트리로 파싱하여 struct를 채울 수 있습니다. cJSON은 단일 파일로 임베드하기 쉽습니다.

문자열과 배열은 어떻게 처리하나요?

문자열은 char*나 고정 버퍼에 매핑됩니다. 배열은 포인터나 고정 크기 배열에 매핑됩니다. struct를 채울 때 메모리를 관리해야 합니다. cJSON_GetObjectItem과 cJSON_GetArrayItem을 사용하여 값을 탐색하고 복사하세요.

내 데이터는 안전한가요?

네. 생성은 전적으로 브라우저에서 실행됩니다. JSON이나 코드가 서버로 전송되지 않습니다.

임베디드 시스템에서 사용할 수 있나요?

네. cJSON은 임베디드 사용을 위해 설계되었습니다. 생성된 struct는 순수 C입니다. 고정 버퍼의 크기를 조정하거나 지원되는 곳에서 동적 할당을 사용해야 할 수 있습니다.

중첩 객체 대 포인터?

중첩 JSON 객체는 중첩 struct 또는 struct에 대한 포인터가 됩니다. 생성기가 구조를 생성하고, 할당 전략(스택, 힙 또는 정적)은 사용자가 결정합니다.

관련 도구

cJSON. json-c. JSON 명세. MDN JSON. RFC 8259.