mirror of
https://github.com/nlohmann/json.git
synced 2026-10-22 05:58:12 +00:00
82 lines
2.4 KiB
Markdown
82 lines
2.4 KiB
Markdown
# nlohmann::basic_json_view::empty
|
|
|
|
```
|
|
bool empty() const noexcept;
|
|
```
|
|
|
|
Checks whether [`size()`](https://json.nlohmann.me/api/basic_json_view/size/index.md) is `0`, as [`BasicJsonType::empty()`](https://json.nlohmann.me/api/basic_json/empty/index.md) would for the same value.
|
|
|
|
## Return value
|
|
|
|
The return value depends on the type and is defined as follows:
|
|
|
|
| Value type | return value |
|
|
| ---------- | ------------------- |
|
|
| null | `true` |
|
|
| discarded | `true` |
|
|
| boolean | `false` |
|
|
| string | `false` |
|
|
| number | `false` |
|
|
| object | `object_t::empty()` |
|
|
| array | `array_t::empty()` |
|
|
|
|
## Exception safety
|
|
|
|
No-throw guarantee: this function never throws exceptions.
|
|
|
|
## Complexity
|
|
|
|
Constant.
|
|
|
|
## Notes
|
|
|
|
As for [`BasicJsonType::empty()`](https://json.nlohmann.me/api/basic_json/empty/index.md), this does not return whether a string value is empty -- it is `false` for any string, regardless of its length.
|
|
|
|
## Examples
|
|
|
|
Example
|
|
|
|
The example below uses [`size()`](https://json.nlohmann.me/api/basic_json_view/size/index.md) and `empty()` to decide whether a parsed message is worth acting on, without materializing it into a `BasicJsonType` value.
|
|
|
|
```
|
|
#include <iostream>
|
|
#include <nlohmann/json_view.hpp>
|
|
|
|
using json_document = nlohmann::json_document;
|
|
|
|
int main()
|
|
{
|
|
std::cout << std::boolalpha;
|
|
|
|
// decide whether a batch is worth processing before building any
|
|
// nlohmann::json value for it
|
|
json_document batch = json_document::parse(R"([1, 2, 3, 4, 5])");
|
|
json_document empty_batch = json_document::parse("[]");
|
|
|
|
std::cout << batch.root().empty() << ' ' << batch.root().size() << '\n';
|
|
std::cout << empty_batch.root().empty() << ' ' << empty_batch.root().size() << '\n';
|
|
|
|
// as for basic_json: null has size 0, every other scalar has size 1
|
|
json_document n = json_document::parse("null");
|
|
json_document s = json_document::parse(R"("hi")");
|
|
std::cout << n.root().size() << ' ' << s.root().size() << '\n';
|
|
}
|
|
```
|
|
|
|
Output:
|
|
|
|
```
|
|
false 5
|
|
true 0
|
|
0 1
|
|
```
|
|
|
|
## See also
|
|
|
|
- [size](https://json.nlohmann.me/api/basic_json_view/size/index.md) - return the number of elements
|
|
- [`BasicJsonType::empty`](https://json.nlohmann.me/api/basic_json/empty/index.md) - the corresponding function of `basic_json`
|
|
|
|
## Version history
|
|
|
|
- Added in version 3.13.0 unreleased.
|