user16199: I'm new to the Arduino and do not quite understand the F() macro yet.
In my code, I have a String, and as I want to transfer it via WebServer, I need to write it to the answer.
Somehow I need to convert the String, to fit it into the fastrprintln() function.
String weather_json = getWeatherData();
char weather[2048];
weather_json.toCharArray(weather,2048);
client.fastrprintln(F(weather));

Do you have any idea for me?

user13432: The Arduino core macro F() takes a string literal and forces the compiler to put it in program memory. This reduces the amount of SRAM needed as the string is not copied to a data memory buffer. Special functions are required to access the data stored in program memory. The Arduino core hides a lot of the typical usages such as:
Serial.println(F("Hello world"));

Further details of the low level access program memory access may be found in the AVR GCC libc documentation. The F() macro is defined as:
class __FlashStringHelper;
#define F(string_literal) (reinterpret_cast<const __FlashStringHelper*>(PSTR(string_literal)))

The FlashStringHelper class is used to help the compiler recognize this type of string literal when passed to Arduino functions. Below are some examples:
// String constructor with program memory string literal
String::String(const __FlashStringHelper *str);

// Print (Serial, etc) of program memory string literal
size_t Print::print(const __FlashStringHelper *);
size_t Print::println(const __FlashStringHelper *);

You should not use the Arduino core F() macro with anything other than a string literal. 

16199: <p>I'm new to the Arduino and do not quite understand the <code>F()</code> macro yet.</p>

<p>In my code, I have a <code>String</code>, and as I want to transfer it via WebServer, I need to write it to the answer.</p>

<p>Somehow I need to convert the <code>String</code>, to fit it into the <code>fastrprintln()</code> function.</p>

<pre><code>String weather_json = getWeatherData();
char weather[2048];
weather_json.toCharArray(weather,2048);
client.fastrprintln(F(weather));
</code></pre>

<p>Do you have any idea for me?</p>
 13432: <p>The Arduino core macro <a href="http://playground.arduino.cc/Learning/Memory" rel="noreferrer">F()</a> takes a string literal and forces the compiler to put it in program memory. This reduces the amount of SRAM needed as the string is not copied to a data memory buffer. Special functions are required to access the data stored in program memory. The Arduino core hides a lot of the typical usages such as:</p>

<pre><code>Serial.println(F("Hello world"));
</code></pre>

<p>Further details of the low level access program memory access may be found in the <a href="http://www.nongnu.org/avr-libc/user-manual/pgmspace.html" rel="noreferrer">AVR GCC libc</a> documentation. The F() macro is <a href="https://github.com/arduino/Arduino/blob/master/hardware/arduino/avr/cores/arduino/WString.h#L38" rel="noreferrer">defined</a> as:</p>

<pre><code>class __FlashStringHelper;
#define F(string_literal) (reinterpret_cast&lt;const __FlashStringHelper*&gt;(PSTR(string_literal)))
</code></pre>

<p>The FlashStringHelper class is used to help the compiler recognize this type of string literal when passed to Arduino functions. Below are some examples:</p>

<pre><code>// String constructor with program memory string literal
String::String(const __FlashStringHelper *str);

// Print (Serial, etc) of program memory string literal
size_t Print::print(const __FlashStringHelper *);
size_t Print::println(const __FlashStringHelper *);
</code></pre>

<p>You should not use the Arduino core F() macro with anything other than a string literal. </p>
