从 JsonDocument 中提取值

Extract a value from a JsonDocument

菜鸟关于 arduino 中的浮点数和从 json 文档中提取值的问题。 我正在向 Ipstack 发出 HTTP 请求以使用此函数获取纬度和经度值:

void gps(){
  
    //Declare an object of class HTTPClient
    HTTPClient http;  

    //Specify request destination and fields
    http.begin("http://api.ipstack.com/check?access_key=233bf289dff160082dd3e5d915ce3135&fields=latitude,longitude");  
    //Send the request
    int httpCode = http.GET();                                  

    //Check the returning code
    if (httpCode > 0) { 
      //Get the request response payload
      payload = http.getString(); 
      //Print the response payload
      Serial.println(payload); 

      DynamicJsonDocument doc(512);
      DeserializationError error = deserializeJson(doc, payload);

      
      float latitudine  = doc["latitude"];
      float longitudine = doc["longitude"];

      Serial.println(latitudine);
      Serial.println(longitudine);

      
    }
    //Close connection
    http.end();  
 
}//end of GPS

当我串行打印有效负载时,我得到这些值:

{"latitude":45.47200012207031,"longitude":9.192000389099121}

但是当我尝试连续打印两个变量“latitudine”和“longitudine”时,我得到了这些值:

45.47
9.19

我怎样才能得到所有的小数?非常感谢

根据函数 print 的 arduino 文档,浮点值默认四舍五入为 2 位数字。但是,您可以在 print 的第二个参数中指定您想要的位数,例如作为

Serial.println(latitudine, 4);

请注意,数据类型 float 可能无法表示 json 中包含的所有数字。然后使用double