载入中...
搜索中...
未找到
JsonDocument.cpp
浏览该文件的文档.
1#include "JsonDocument.h"
2
3namespace eve {
4namespace data {
5
6JsonDocument::JsonDocument() : root_(Poco::JSON::Object::Ptr(new Poco::JSON::Object)) {}
7
8JsonDocument::JsonDocument(Poco::Dynamic::Var root) : root_(std::move(root)) {}
9
10JsonDocument::JsonDocument(JsonDocument&&) noexcept = default;
11JsonDocument& JsonDocument::operator=(JsonDocument&&) noexcept = default;
12
13bool JsonDocument::empty() const { return root_.isEmpty(); }
14
15bool JsonDocument::isObject() const { return root_.type() == typeid(Poco::JSON::Object::Ptr); }
16
17bool JsonDocument::isArray() const { return root_.type() == typeid(Poco::JSON::Array::Ptr); }
18
19Poco::Dynamic::Var& JsonDocument::root() { return root_; }
20const Poco::Dynamic::Var& JsonDocument::root() const { return root_; }
21
22Poco::JSON::Object::Ptr JsonDocument::object() {
23 if (!isObject()) return nullptr;
24 return root_.extract<Poco::JSON::Object::Ptr>();
25}
26
27Poco::JSON::Array::Ptr JsonDocument::array() {
28 if (!isArray()) return nullptr;
29 return root_.extract<Poco::JSON::Array::Ptr>();
30}
31
32} // namespace data
33} // namespace eve
Light2D::Data * data
Object is the base class for all game objects. It provides reference counting and dirty flag for upda...
Definition Object.h:18
Thin RAII wrapper over a Poco JSON value (object/array/scalar).
JsonDocument()
Creates an empty document.
Poco::JSON::Array::Ptr array()
bool isObject() const
Root type predicates.
Poco::Dynamic::Var & root()
Underlying Poco dynamic value.
Poco::JSON::Object::Ptr object()
Root as JSON object/array (may be null when the type differs).
Definition Build.cpp:11