본문 바로가기

기타/JSMN5

JSMN simple.c 3탄 인터넷 등에서 마음에 드는 음식점의 메뉴판을 고를 것. 앞 페이지의 구조체타입 선언부를 참고하여 4종류 이상의 값을 뽑아내서 메 뉴 정보를 만들 것. 예) 메뉴카테고리, 메뉴이름, 주문기준, 가격 해당 정보들을 토대로 json 텍스트 파일을 만들것 파일명 : mymenu.json 주의사항 하나의 키에 여러 value가 들어가는 경우 JSMN_ARRAY 사용해야 함 ([ .. ] 괄호 사용) 중식메뉴와 피자메뉴로 결정, json 형식으로 만든다. parsejsonfile.c —> mystore.c로 복사한 후 기능을 구현할 것 Makefile 수정하여 target으로 mystore 추가할 것. char *readjsonfile(const char * filename) 을 사용하여 mymenu.json 읽으.. 2018. 8. 8.
JSMN simple.c 2 수정 char *readjsonfile(const char * filename) 으로 변경 동작 : 임의로 지정한 json 텍스트 파일로부터 json string을 만들어낸다. 파라미터 : json text 파일이름 리턴값 : 읽혀진 json string 호출 예 : JSON_STRING = readjsonfile(“data.json”); 랩1은 저번 것과 다를 것이 없다. 다만 저번 코드 중에 내가 한 것 중 틀린 것이 있었다. 그것은 readjsonfile 함수에서 realloc의 2번째 파라미터에 strlen(temp)만 했던 것이다. realloc함수의 2번째 파라미터는 전체 길이를 정하는 것이기 때문에 strlen(str) 즉, 원래 사이즈만큼 더해주는 것이 맞다. 그리고 이번에 읽을 파일은 data.. 2018. 8. 8.
JSMN simple.c 분석 및 응용 jsmn/example/simple.c -> parsejsonfile.c 로 업그레이드 기존의 simple.c 소스코드는 안에 있는 값이 설정돼있는 JSON_STRING을 파싱해서 결과를 나타냈다면, 이번 과제의 목적은 외부 파일로부터 문자열들을 모두 읽어서 JSON_STRING에 저장하고 파싱해서 결과를 나타내는 것이다. 이렇게 변경된 소스코드의 이름을 parsejsonfile.c라 하고, 내부에 char * readjsonfile() 함수를 만들어서 외부파일 parsejson.txt의 내용을 JSON_STRING에 저장시키고, 이것을 파싱해 key값과 value값이 구분된 형태로 결과를 나타낼 것이다. 1. Makefile 변경하기 아래와 같이 parse_example에 대해 simple_exampl.. 2018. 8. 8.
JSMN , JSON malloc, realloc 사용해서 파일 읽기. Console input char * read_string_from_console(); 을 구현하고 테스트하라. 동작 : 빈 문자열을 입력할 때까지 반복문을 돌리면서, 키보드로부터 입력받은 문자 열을 이어붙인 문자열을 만든다. 리턴값 : 이어붙인 전체 문자열 메인에서 함수를 호출하고 엔터만 입력할 때까지 키보드로 입력받고 출력!메인함수a, b, c 입력하고 엔터만 입력바로 엔터입력a 입력하고 엔터만 입력 File input char * read_string_from_file(char filename[]); 을 구현하고 테스트하라. 동작 : 텍스트파일을 열러 한줄씩 읽으면서 이를 하나의 문자열로 이어붙인다. 파라미터 : 읽어들일 텍스트파일 이름 리턴값 : 이어붙인 전체 문자열 abc.txt메인함수 읽은모습.. 2018. 8. 8.