1
내 응용 프로그램에서 json
개체를 사용하여 원격 데이터베이스에서 결과를 얻습니다. 그것은 외모와 I에 의해 speciified 행/COL에서 값을 얻을 수 있습니다인덱스로 QJsonObject에서 값 가져 오기
{
status:"ok",
data: [
{ field1:"value1", field2:"value2", field3:"value3" },
{ field1:"value4", field2:"value5", field3:"value6" },
{ field1:"value7", field2:"value8", field3:"value9" }
]
}
:
QJsonDocument jsonResponse = QJsonDocument::fromJson(strReply.toUtf8());
QJsonObject responseObject = jsonResponse.object();
if(responseObject.value("status").toString() == "ok") {
QJsonArray dataObject = responseObject.value("data").toArray();
// and here I can get the value, for example 2-nd row, field2
QString value = dataObject.at(1).toObject().value("field2").toString();
}
하지만 가끔은 내가하지 이름이 아니라 인덱스 값을 얻을 필요가 같이 일반적으로 응답 문자열 보인다.
QJsonObject obj = dataObject.at(1).toObject();
QString key = obj.keys().at(1); // I use index here instead of name
QString value = obj.value(key).toString();
을하지만 불행히도 그것은 keys()
가되지는 QJsonObject
에서 첫 번째 필드가 될 것 인덱스 0 정확히 너무 키 필드의 순서를 유지하는 것이 보인다 : 좋아, 나는 다음을 수행합니다.
내 질문 - 색인에 의해 QJsonObject
에서 적절한 필드를 얻는 방법은 무엇입니까?