ArduinoJSON;测试JSON /转换中是否存在属性

时间:2019-02-27 19:28:37

标签: c json arduino

我的代码在微控制器上运行,并且正在解析它将接收的控制命令。

命令是JSON,看起来像这样...

{[PARAMTER_1]:[VALUE_1], [...] , [PARAMTER_N]:[VALUE_N]}

所以可能是...

{"opMode"=1, "StringA" = "Hello"}

或者可能是

{"brightness"=5, "StringB"="Goodbye"}

如何测试是否包含参数?

例如,如果我使用以下代码进行处理:

String command = <JSON COMMAND>
char conString[200];

command.toCharArray(conString, sizeof(conString));
StaticJsonBuffer<1000> jsonBuffer;
JsonObject& root = jsonBuffer.parseObject(conString);

如何测试生成的root [“ PARAMTER”]输出以查看它们是否存在?问题是,如果我只是做类似的事情...

resultString = root["StringA"];
resultInt    = root["opMode"];

如果它们存在但为“”和0,则它们将返回相同的值,就像它们最初未包含在JSON中一样。

我是否必须在原始JSON字符串上使用诸如command.indexOf(“ opMode”)之类的东西来确保它在那里? (在此示例中,这是可行的。但是对于更复杂的JSON,要确保响应有效/存在,似乎需要做很多工作)

0 个答案:

没有答案