강사님 안녕하세요
강의를 볼 수 있는 기간이 얼마 남지 않아 조금한 마음에 질문드립니다.
이미치 처리나 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 } } }
죄송합니다. 아무리 인터넷을 찾고 도움말을 봐도 정확하게 나오지 않네요
혹시 Qt 에서 프로젝트파일이 위치한 폴더에 파일을 읽고 싶은때 경로지정을 어떻게 해야 할까요?