📝 some documentation
This commit is contained in:
parent
734e2b73cf
commit
61cc07ff38
3 changed files with 96 additions and 10 deletions
|
@ -107,7 +107,7 @@ WARN_LOGFILE =
|
|||
# Configuration options related to the input files
|
||||
#---------------------------------------------------------------------------
|
||||
INPUT = ../src/json.hpp \
|
||||
index.md
|
||||
index.md faq.md
|
||||
INPUT_ENCODING = UTF-8
|
||||
FILE_PATTERNS =
|
||||
RECURSIVE = NO
|
||||
|
|
87
doc/faq.md
Normal file
87
doc/faq.md
Normal file
|
@ -0,0 +1,87 @@
|
|||
# FAQ
|
||||
|
||||
## Parsing
|
||||
|
||||
### How can I parse from a string?
|
||||
|
||||
```cpp
|
||||
json j = json::parse("[1,2,3,4]");
|
||||
```
|
||||
|
||||
You can pass string literals (as above), `std::string`, `const char*` or byte containers such as `std::vector<uint8_t>`.
|
||||
|
||||
### How can I parse from a file?
|
||||
|
||||
```cpp
|
||||
std::ifstream i("your_file.json");
|
||||
json j = json::parse(i);
|
||||
```
|
||||
|
||||
## Serialization
|
||||
|
||||
### How can I serialize a JSON value
|
||||
|
||||
```cpp
|
||||
std::cout << j << std::endl;
|
||||
```
|
||||
|
||||
This is equivalent to
|
||||
|
||||
```cpp
|
||||
std::string s = j.dump();
|
||||
std::cout << s << std::endl;
|
||||
```
|
||||
|
||||
### How can I pretty-print a JSON value
|
||||
|
||||
```cpp
|
||||
std::cout << std::setw(4) << j << std::endl;
|
||||
```
|
||||
|
||||
This is equivalent to
|
||||
|
||||
```cpp
|
||||
std::string s = j.dump(4);
|
||||
std::cout << s << std::endl;
|
||||
```
|
||||
|
||||
The number `4` denotes the number of spaces used for indentation.
|
||||
|
||||
## Iterating
|
||||
|
||||
### How can I iterate over a JSON value?
|
||||
|
||||
```cpp
|
||||
for (json& val : j)
|
||||
{
|
||||
// val is a reference for the current value
|
||||
}
|
||||
```
|
||||
|
||||
This works with any JSON value, also primitive values like numbers.
|
||||
|
||||
### How can I access the keys when iterating over a JSON object?
|
||||
|
||||
```cpp
|
||||
for (auto it = j.begin(); it != j.end(); ++it)
|
||||
{
|
||||
// the value
|
||||
json &val = it.value();
|
||||
|
||||
// the key (for objects)
|
||||
const std::string &key = it.key();
|
||||
}
|
||||
```
|
||||
|
||||
You can also use an iteration wrapper and use range for:
|
||||
|
||||
```cpp
|
||||
for (auto it : json::iteration_wrapper(j))
|
||||
{
|
||||
// the value
|
||||
json &val = it.value();
|
||||
|
||||
// the key (for objects)
|
||||
const std::string &key = it.key();
|
||||
}
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue