From 0902ced1c4ecbbf082ca290cc605acc844402eef Mon Sep 17 00:00:00 2001 From: wcc-zf <79351670+wcc-zf@users.noreply.github.com> Date: Thu, 29 May 2025 09:37:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dparam.required()=3D=3Dfalse?= =?UTF-8?q?=E6=97=B6=E5=8F=AF=E8=83=BD=E8=A7=A6=E5=8F=91=E6=9C=AA=E5=AE=9A?= =?UTF-8?q?=E4=B9=89=E7=9A=84=E9=97=AE=E9=A2=98=20(#705)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main/iot/thing.cc | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/main/iot/thing.cc b/main/iot/thing.cc index 56a88a41..77f4680e 100644 --- a/main/iot/thing.cc +++ b/main/iot/thing.cc @@ -64,11 +64,18 @@ void Thing::Invoke(const cJSON* command) { throw std::runtime_error("Parameter " + param.name() + " is required"); } if (param.type() == kValueTypeNumber) { - param.set_number(input_param->valueint); + if (cJSON_IsNumber(input_param)) { + param.set_number(input_param->valueint); + } } else if (param.type() == kValueTypeString) { - param.set_string(input_param->valuestring); + if (cJSON_IsString(input_param) || cJSON_IsObject(input_param) || cJSON_IsArray(input_param)) { + std::string value_str = input_param->valuestring; + param.set_string(value_str); + } } else if (param.type() == kValueTypeBoolean) { - param.set_boolean(input_param->valueint == 1); + if (cJSON_IsBool(input_param)) { + param.set_boolean(input_param->valueint == 1); + } } }