Crow/docs/guides/json.md

1.6 KiB

Crow has built in support for JSON data.

##rvalue JSON read value, used for taking a JSON string and parsing it into crow::json.

You can read individual items of the rvalue, but you cannot add items to it.
To do that, you need to convert it to a wvalue, which can be done by simply writing #!cpp crow::json::wvalue wval (rval); (assuming rval is your rvalue).

For more info on read values go here.

#wvalue JSON write value, used for creating, editing and converting JSON to a string.

The types of values that wvalue can take are as follows:

  • False: from type bool.
  • True: from type bool.
  • Number
    • Floating_point: from type double.
    • Signed_integer: from type int.
    • Unsigned_integer: from type unsigned int.
  • String: from type std::string.
  • List: from type std::vector.
  • Object: from type crow::json::wvalue.
    This last type means that wvalue can have keys, this is done by simply assigning a value to whatever string key you like, something like #!cpp wval["key1"] = val1;. Keep in mind that val1 can be any of the above types.

A JSON wvalue can be returned directly inside a route handler, this will cause the content-type header to automatically be set to Application/json and the JSON value will be converted to string and placed in the response body. For more information go to Routes.

For more info on write values go here.