我的代码在微控制器上运行,并且正在解析它将接收的控制命令。
命令是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,要确保响应有效/存在,似乎需要做很多工作)