我正在关注此示例:https://github.com/bblanchon/ArduinoJson/wiki/Decoding-JSON
JsonObject& root = jsonBuffer.parseObject(json);
我想将root传递给函数,并在函数中使用它。
//Call it
test(root);
// Define here
void test(JsonObject* root) {
int flag = (*root)["success"]; // Not sure how to do it
}
编译错误:
error: could not convert '& root' from 'ArduinoJson::JsonObject*' to 'ArduinoJson::JsonObject'
抱歉,我对指针的了解很差。
答案 0 :(得分:2)
由于你的功能正在使用指针,因此在传递之前你需要获取[[NSNotificationCenter defaultCenter] postNotificationName:@"SomeNotification"
object:self //<- SELF!!
userInfo:nil];
的地址。这是使用root
(addressof)运算符完成的。
&
但是,你应该使用一个引用,那么你的代码会更简单一些,而且看起来更干净(没有地址和没有解引用的指针)。
JsonObject& root = jsonBuffer.parseObject(json);
test( &root ); //Get address of root, then pass that pointer to function.
void test(JsonObject* root) { //Pass pointer by value
int flag = (*root)["success"];
}