Qt treeview 및 Qt Json 지원을 사용하여 Json 형식 데이터 편집기를 만들고 있습니다. 함수에 QJsonObject 또는 QJsonArray 참조 매개 변수를 전달하고 싶습니다.Qt - QJsonObject 또는 QJsonArray의 참조 전달
이 작동 : 나는 두 QJsonObject의 참조를 사용할 수있는 방법
//QJsonValue, because it can handle both QJsonObject and QJsonArray
void makeJsonData(QJsonValue &obj) {
obj.toObject().insert("key", 1234); //obj is QJsonObject
}
//call makeJsonData()
QJsonObject jobj;
makeJsonData(QJsonValue::fromVariant(jobj)); //fromVariant() to cast QJsonObject to QJsonValue
int keysize = jobj.keys().size(); //0, Fail.
그것은 QJsonValue :: toObject 모양() 만 복사 매개 변수 .. 과 :
void makeJsonData(QJsonObject &obj) {
obj.insert("key", 1234);
}
//call makeJsonData()
QJsonObject jobj;
makeJsonData(jobj);
int keysize = jobj.keys().size(); //1, OK.
하지만이에 매개 변수 유형이 하나 인 QJsonArray?
'QJsonObject'와'QJsonArray' 둘 다에 대한 메소드에서'dynamic_cast <>'와 함께 매개 변수 타입으로'void *'를 사용하면 작동합니다 (포인터 타입으로 변환하면 캐스트 실패시 null을 반환합니다). '.toObject()'를 할 필요없이'QJsonValue'와'QJsonArray'를 모두 넘겨 줄 수있을 것입니다. 요구. –
@LosFrijoles 빠른 답장을 보내 주셔서 감사합니다! –