Arduino,将jsonBuffer.parseObject传递给函数

时间:2016-06-07 04:43:35

标签: c++ json arduino

我正在关注此示例: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'

抱歉,我对指针的了解很差。

1 个答案:

答案 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"]; 
}