inline _Base& insert_at(unsigned int index, const Value& value);
// write the value to a file
- inline int save_file(const char* path, int flags = 0) const;
+ inline int dump_file(const char* path, int flags = 0) const;
+ inline int dump_file(const std::string& path, int flags = 0) const;
// write the value to a string (caller must deallocate with free()!)
- inline char* save_string(int flags = 0) const;
+ inline char* dumps(int flags = 0) const;
};
// represents any JSON value, private base
// proxies an array element
class ElementProxy {
public:
- // constructor
- ElementProxy(json_t* array, unsigned int index) : _array(array), _index(index) {}
+ ElementProxy(json_t* array, unsigned int index);
+ ElementProxy(const ElementProxy& other);
+ ~ElementProxy();
// assign to the proxied element
inline ElementProxy& operator=(const Value& value);
// proxies an object property
class PropertyProxy {
public:
- // constructor
- PropertyProxy(json_t* array, const char* key) : _object(array), _key(key) {}
+ PropertyProxy(json_t* object, const char *key);
+ PropertyProxy(const PropertyProxy& other);
+ ~PropertyProxy();
// assign to the proxied element
inline PropertyProxy& operator=(const Value& value);
// array object we wrap
json_t* _object;
+ // iterator pointing to property
+ void* _iter;
+
// key of property
- const char* _key;
+ char* _key;
};
} // namespace json::detail
// load a file as a JSON value
inline Value load_file(const char* path, json_error_t* error = 0);
+ inline Value load_file(const std::string& path, json_error_t* error = 0);
// load a string as a JSON value
- inline Value load_string(const char* string, json_error_t* error = 0);
+ inline Value loads(const char* string, json_error_t* error = 0);
+ inline Value loads(const std::string& string, json_error_t* error = 0);
} // namespace json