我有一个uint16_t数组元素,在将其作为JSON对象应用之前,我想对其进行更新。
void JSONmsgBuilder_modbus(){
//clear msg to build new one
memset(msg, 0, sizeof(msg));
//char JSONmsg [2]; // use basic ascii keys like A or AA
jw.startObject();
for (int i=0; i < 51; ++i){
char buffer [4];
int u = i;
std::string JSONfirst = itoa((u + 1), buffer, 10);
const char *JSONeventName = JSONfirst.c_str();
//Serial.println(saved_holdingRegister[i]);
//debugging
//Serial.print ("the JSON key is: ");
//Serial.print (JSONeventName);
//Serial.println (" end of JSON key");
//uint16_t parsingModData = saved_holdingRegister[i];
//char modData_char[2];
//modData_char[0] = parsingModData & 0xFF;
Serial.println(saved_holdingRegister[i]);
int newModData = saved_holdingRegister[i];
//char newModData[12];
//sprintf(newModData, "", saved_holdingRegister[i]);
jw.insertKeyValue(JSONeventName, newModData);
//Serial.print("Value added: ");
//Serial.print(saved_holdingRegister[i]);
}
我的uint16_t
saved_holdingRegisters
以前是由另一个功能更新的。当我将其应用于此JSON msg构建函数时,它只是未更新。我知道它已更新,进入函数以及将其应用于JSON对象的过程都没有问题,但是当我在构建JSON消息后运行serial.print(msg
)时,我就得到了{"1":null "2" null....}
如果它从未更新过。