Qt5에서 JSON의 해석
QJsonDocument은 텍스트 표시를 기반으로 하는 UTF-8 인코딩을 할 수 있을 뿐만 아니라, Qt 자체의 이진 형식에서 이 파일을 읽고 쓸 수 있다.JSON 문서는 텍스트 기반 표현에서 QJsonDocument::fromJson () 을 사용하여 QJsonDocument로 변환할 수 있습니다.toJSON()이 문자로 다시 변환합니다.파서는 JSON을 바이너리 표현으로 변환하는 매우 빠르고 효율적입니다.
QJsonObject
QJsonObject 클래스는 JSON 객체를 패키지화하는 데 사용됩니다.JSON 객체는 키 값 쌍이며 여기서 키는 고유한 문자열이며 값은 QJsonValue로 표시됩니다.QJsonObject를 QVariantMap에서 변환/변환할 수 있습니다.예를 들어: {"object0": "value0", "object1": "value1", "object2": "value2"}
QJsonArray
QJsonArray 클래스는 JSON 배열을 캡슐화하는 데 사용됩니다.JSON 배열 목록 값이 목록은 패턴에서 QJsonValue 작업을 삽입하고 제거할 수 있습니다.QJsonArray는 QVariantList에서/로 변환할 수 있습니다.예를 들어: [{array0}, {array1}, {array2}] QJsonDocument가 유효하게 해석된 문서를 사용할 수 있습니다!iSNull() 판단.isArray() 및 isObject()를 사용하여 배열이나 객체가 포함되어 있는지 여부를 판단합니다.문서에 포함된 그룹이나 대상은array()나object()로 검색한 다음 읽거나 조종할 수 있습니다.
일기예보 JSON 해석 실례
JSON 컨텐트:
{"desc":"OK","status":1000,"data":{"wendu":"-5","ganmao":" , , 。 。","forecast":[{"fengxiang":" ","fengli":"4-5 ","high":" -3℃","type":" ","low":" -10℃","date":"24 "},{"fengxiang":" ","fengli":" ","high":" 2℃","type":" ","low":" -7℃","date":"25 "},{"fengxiang":" ","fengli":"3-4 ","high":" 2℃","type":" ","low":" -9℃","date":"26 "},{"fengxiang":" ","fengli":" ","high":" 2℃","type":" ","low":" -6℃","date":"27 "},{"fengxiang":" ","fengli":" ","high":" 4℃","type":" ","low":" -4℃","date":"28 "}],"yesterday":{"fl":"5-6 ","fx":" ","high":" -11℃","type":" ","low":" -14℃","date":"23 "},"aqi":"50","city":" "}}
확인 코드:
QString Json = JSON ;
QByteArray byte_array;
QJsonParseError json_error;
QJsonDocument parse_doucment = QJsonDocument::fromJson(byte_array.append(Json),&json_error);
if(json_error.error == QJsonParseError::NoError)
{
QJsonObject obj = parse_doucment.object();
<span style="white-space:pre"> </span>/* if( obj.contains("desc") ) "desc" take */
QJsonValue desc = obj.take("desc");
if(desc.toString() != "OK")
{
qDebug()<<"
";
return;
}
QJsonValue data = obj.take("data");
today.ganmao = data.toObject().take("ganmao").toString();
QJsonValue forecast1 = data.toObject().take("forecast");
QJsonArray forecast2 = forecast1.toArray();
for(int i=0; i<5; i++)
{
QJsonValue value = forecast2.at(i);
QJsonObject object = value.toObject();
forecast[i].fengxiang = object.take("fengxiang").toString();
forecast[i].date = object.take("date").toString();
forecast[i].fengli = object.take("fengli").toString();
forecast[i].high = object.take("high").toString();
forecast[i].low = object.take("low").toString();
forecast[i].type = object.take("type").toString();
}
}
else
{
qDebug()<<"Json ";
return;
}
참조:Qt의 JSON 생성 및 해석
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콘텐츠 SaaS | JSON 스키마 양식 빌더Bloomreach Content를 위한 JSON Form Builder 맞춤형 통합을 개발합니다. 최근 Bloomreach Content SaaS는 내장 앱 프레임워크를 사용하여 혁신적인 콘텐츠 유형 필드를 구축할...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.