QT로 이미지나 json 파일 가져올때
434
1
강사님 안녕하세요
강의를 볼 수 있는 기간이 얼마 남지 않아 조금한 마음에 질문드립니다.
이미치 처리나 JSON파일 처리 강의를 볼때 이미지 파일이나 JSON 파일을 리소스에 등록시키고 가져 오던데
꼭 리소스에 등록을 해야만 하나요? 파일 있는 곳이 프로젝트 파일이이 있는 곳이면 상대적 경로로 가져오면 될 것 같은데
방법을 문의 드립니다.
아래 파일은 제가 파싱하고자 하는 JSON 파일입니다. 우선 start 오브젝트의 값들을 가져오고자 하느데
다음과 같이 하니 동작이 되지 않습니다. 문제점 지적 부탁드립니다.
parseJSON(const QString &data)
QJsonDocument jsonResponse = QJsonDocument::fromJson(data.toLocal8Bit()); QJsonObject totalobj = jsonResponse.object(); QJsonObject startobj = totalobj["start"].toObject(); QString Str1 = startobj["version"].toString(); QString Str2 = startobj["system_info"].toString(); ui->textEdit->append(Str1); ui->textEdit->append(Str2);
JSON 파일에 오브젝트에 오브젝트를 얻어 오는 방법이 어떻게 되는 지 궁금합니다.
예로 보여주신 것은 단 하나의 오브텍트를 가지는 JSON 파일인데 보통 계층이 여러개가 되는 JSON파일은
어떤식으로 파싱을 해야 하나요?
아래 JSON파일이 이렇게 밖에 첨부되지 않는데 적당한 에디터로 옮겨야 할 것 같습니다. 죄송합니다.
->json 파일
{ "start": { "connected": [{ "socket": 4, "local_host": "127.0.0.1", "local_port": 53559, "remote_host": "127.0.0.1", "remote_port": 5201 }], "version": "iperf 3.1.3", "system_info": "CYGWIN_NT-10.0 ▒▒▒▒▒▒ 2.5.1(0.297/5/3) 2016-04-21 22:14 x86_64", "timestamp": { "time": "Tue, 19 Jul 2022 05:49:51 GMT", "timesecs": 1658209791 }, "connecting_to": { "host": "127.0.0.1", "port": 5201 }, "cookie": "▒▒▒▒▒▒.1658209791.845554.28a3c74361a", "tcp_mss_default": 0, "test_start": { "protocol": "TCP", "num_streams": 1, "blksize": 131072, "omit": 0, "duration": 5, "bytes": 0, "blocks": 0, "reverse": 0 } }, "intervals": [{ "streams": [{ "socket": 4, "start": 0, "end": 1.000721, "seconds": 1.000721, "bytes": 2595618816, "bits_per_second": 2.074999e+10, "omitted": false }], "sum": { "start": 0, "end": 1.000721, "seconds": 1.000721, "bytes": 2595618816, "bits_per_second": 2.074999e+10, "omitted": false } }, { "streams": [{ "socket": 4, "start": 1.000721, "end": 2.005017, "seconds": 1.004296, "bytes": 2570846208, "bits_per_second": 2.047880e+10, "omitted": false }], "sum": { "start": 1.000721, "end": 2.005017, "seconds": 1.004296, "bytes": 2570846208, "bits_per_second": 2.047880e+10, "omitted": false } }, { "streams": [{ "socket": 4, "start": 2.005017, "end": 3.011280, "seconds": 1.006263, "bytes": 2549088256, "bits_per_second": 2.026578e+10, "omitted": false }], "sum": { "start": 2.005017, "end": 3.011280, "seconds": 1.006263, "bytes": 2549088256, "bits_per_second": 2.026578e+10, "omitted": false } }, { "streams": [{ "socket": 4, "start": 3.011280, "end": 4.000203, "seconds": 0.988923, "bytes": 2492203008, "bits_per_second": 2.016095e+10, "omitted": false }], "sum": { "start": 3.011280, "end": 4.000203, "seconds": 0.988923, "bytes": 2492203008, "bits_per_second": 2.016095e+10, "omitted": false } }, { "streams": [{ "socket": 4, "start": 4.000203, "end": 5.008456, "seconds": 1.008253, "bytes": 2597322752, "bits_per_second": 2.060850e+10, "omitted": false }], "sum": { "start": 4.000203, "end": 5.008456, "seconds": 1.008253, "bytes": 2597322752, "bits_per_second": 2.060850e+10, "omitted": false } }], "end": { "streams": [{ "sender": { "socket": 4, "start": 0, "end": 5.008456, "seconds": 5.008456, "bytes": 12805079040, "bits_per_second": 2.045354e+10 }, "receiver": { "socket": 4, "start": 0, "end": 5.008456, "seconds": 5.008456, "bytes": 12804882391, "bits_per_second": 2.045322e+10 } }], "sum_sent": { "start": 0, "end": 5.008456, "seconds": 5.008456, "bytes": 12805079040, "bits_per_second": 2.045354e+10 }, "sum_received": { "start": 0, "end": 5.008456, "seconds": 5.008456, "bytes": 12804882391, "bits_per_second": 2.045322e+10 }, "cpu_utilization_percent": { "host_total": 97.261207, "host_user": 2.194162, "host_system": 95.067046, "remote_total": 3.763427, "remote_user": 0.787845, "remote_system": 2.975581 } } }
답변 1
0
김대진
안녕하세요. 김재우님,
제가 JSON 파일을 리소스에 등록해 사용한것은 구현 설명을 쉽게 하려고 한것입니다.
resource 에 등록하지 않고 사용하셔도 됩니다.
0
김재우
죄송합니다. 아무리 인터넷을 찾고 도움말을 봐도 정확하게 나오지 않네요
혹시 Qt 에서 프로젝트파일이 위치한 폴더에 파일을 읽고 싶은때 경로지정을 어떻게 해야 할까요?
0
김대진
프로젝트가 있는 위치는 알수없구요. 실행파일이 있는 위치는 알수있습니다.
0
김재우
QCoreApplication::applicationDirPath()
이걸써서 실행파일 폴더는 알아냈습니다. 프로젝트는 알 수 없군요.
감사합니다.
Build system의 Obs 에 관한 질문
로드맵 재수강 로드맵 할인문의
강의 재수강 문의
강의 연장 문의
강의 연장 질문
22강 후반부와 23강 전반부의 내용이 겹칩니다.
코드 크가가 너무 작은대 이거 화면확대 어떻게 하나요?
강의 자료 pdf 다운로드 할 수 있을까요?
혹시 강의 연장 가능할까요? ㅠㅠ
custom Widget 강의 에서 알려주신 promoted widgets 질문 드립니다.
QML로 만든 파일도 똑같이 설치판 제작하면 되나요?
'Re-entrancy' 사용 시 프로그램 속도 문의드립니다.
QImage에서 이미지가 안불러와집니다.
Android 폰에서 개발환경 설정과 예제 App 구현 질문드립니다.
'Re-entrancy를 만족하는 Thread 예제 구현' 에서 질문있습니다.
크로마키 영상처리 소스코드 구현 (2/2편) 에러가 발생합니다.
Writing QML Extensions with C++ 내용에 대해서 질문드립니다!
Qt Creator 기능 질문드립니다.
위젯프로그램 위에 챠트 띄우기
QT로 구현한 프로그램 실행관련 및 추가질문
Go to slots 을 사용했을때 connect 함수 위치
Qt Quick 모듈의 해석 질문드립니다.
QT에서 그래프 챠트 그리는 방법 문의
Window에서 프로그래밍한 것을 리눅스로 옮기는 방법