ArduinoJson не добавляет строку в JsonObject. ArduinoJson сломался?

esp32 json

У меня есть этот код


String GetTimeString(){        
    strftime(dateArray, 100, dateFormat, getTimeInfo());
    dateString = String(dateArray);
    Serial.println(dateString);
    return dateString;
}

Вызывается позже вот так:


String GetTimeString(){        
    strftime(dateArray, 100, dateFormat, getTimeInfo());
    dateString = String(dateArray);
    Serial.println(dateString);
    return dateString;
}

Но результирующий объект выглядит так:

12 сентября 2020 г., 09:49:04 {"DryBulbTemp": 80,762, "WetBulbTemp": 72,74606, "Давление": 398,9942, "Влажность": 68,32129, "Время": null

Поэтому он ведет себя таким образом независимо от того, печатаю ли я то, что выходит из функции, непосредственно перед назначением "Time" имущество. ArduinoJson просто сломался?

, 👍-1

Обсуждение

https://arduinojson.org/v6/faq/why-is-the-output-incomplete/, @Benoit Blanchon


1 ответ


0

ArduinoJson 6 работает с фиксированным распределением памяти.

При создании JsonDocument необходимо указать его объем памяти.
Если емкость слишком мала, некоторые части будут отсутствовать.

Решение состоит в том, чтобы увеличить емкость JsonDocument.
Используйте ArduinoJson Assistant, чтобы узнать требования к памяти для вашего проекта.

,

Совершенно нелогично, чтобы сохранялось свойство «Время», но не значение. Также не требуется, чтобы распределение было N+2, что там на самом деле. Но конечно, понизьте мой вопрос., @A.Rowan

Я не минусовал ваш вопрос. Если вы считаете, что ArduinoJson не работает, [откройте вопрос на GitHub] (https://github.com/bblanchon/ArduinoJson/issues/new). Если вы хотите узнать, как работает библиотека, прочтите [документацию] (https://arduinojson.org/v6/doc/)., @Benoit Blanchon