改函数解决Arduino接收Json数据缺少双引号问题
调用发送:接收数据后,用String 变量接收函数的返回值,结果将所有键值变成字符串类型
String MyFixJSON(const String& input)
{
String output = input;
// 确保所有值被双引号包围
int valueStart = output.indexOf(":") + 1;
while (valueStart != 0) {
if (output.charAt(valueStart) != '"') {
output = output.substring(0, valueStart) + "\"" + output.substring(valueStart);
}
int valueEnd = output.indexOf(",", valueStart);
if (valueEnd == -1) valueEnd = output.indexOf("}", valueStart);
if (output.charAt(valueEnd - 1) != '"') {
output = output.substring(0, valueEnd) + "\"" + output.substring(valueEnd);
}
valueStart = output.indexOf(":", valueEnd) + 1;
}
// 确保 JSON 字符串以 '}' 结尾
if (output.charAt(output.length() - 1) != '}') {
output += "}"; // 如果没有闭合大括号,添加一个
}
return output;
}