[DEV] add get api
This commit is contained in:
parent
9a05682468
commit
2627da57d8
@ -181,5 +181,34 @@ bool ejson::Object::IGenerate(etk::UString& _data, int32_t _indent) const
|
||||
}
|
||||
|
||||
|
||||
ejson::Value* ejson::Object::GetSub(const etk::UString& _named) const
|
||||
{
|
||||
return m_value[_named];
|
||||
}
|
||||
|
||||
ejson::Object* ejson::Object::GetSubObject(const etk::UString& _named) const
|
||||
{
|
||||
ejson::Value* tmp = m_value[_named];
|
||||
if (NULL == tmp) {
|
||||
return NULL;
|
||||
}
|
||||
return tmp->ToObject();
|
||||
}
|
||||
|
||||
ejson::String* ejson::Object::GetSubString(const etk::UString& _named) const
|
||||
{
|
||||
ejson::Value* tmp = m_value[_named];
|
||||
if (NULL == tmp) {
|
||||
return NULL;
|
||||
}
|
||||
return tmp->ToString();
|
||||
}
|
||||
|
||||
ejson::Array* ejson::Object::GetSubArray(const etk::UString& _named) const
|
||||
{
|
||||
ejson::Value* tmp = m_value[_named];
|
||||
if (NULL == tmp) {
|
||||
return NULL;
|
||||
}
|
||||
return tmp->ToArray();
|
||||
}
|
||||
|
@ -48,7 +48,10 @@ namespace ejson
|
||||
protected:
|
||||
etk::Hash<ejson::Value*> m_value; //!< value of the node (for element this is the name, for text it is the inside text ...)
|
||||
public:
|
||||
|
||||
ejson::Value* GetSub(const etk::UString& _named) const;
|
||||
ejson::Object* GetSubObject(const etk::UString& _named) const;
|
||||
ejson::String* GetSubString(const etk::UString& _named) const;
|
||||
ejson::Array* GetSubArray(const etk::UString& _named) const;
|
||||
public:
|
||||
/**
|
||||
* @brief Get the node type.
|
||||
|
@ -31,12 +31,7 @@ bool ejson::String::IParse(const etk::UString& _data, int32_t& _pos, ejson::file
|
||||
DrawElementParsed(_data[iii], _filePos);
|
||||
#endif
|
||||
ejson::filePos tmpPos;
|
||||
if( _data[iii]==' '
|
||||
|| _data[iii]=='\t'
|
||||
|| _data[iii]=='\n'
|
||||
|| _data[iii]=='\r') {
|
||||
// white space ==> nothing to do ...
|
||||
} else if(m_quoted==true) {
|
||||
if(m_quoted==true) {
|
||||
// TODO : manage \x
|
||||
if( _data[iii]!= '\"') {
|
||||
m_value += _data[iii];
|
||||
|
@ -130,7 +130,7 @@ void ejson::Document::Display(void)
|
||||
JSON_INFO("Generated JSON : \n" << tmpp);
|
||||
}
|
||||
|
||||
etk::UString CreatePosPointer(const etk::UString& _line, int32_t _pos)
|
||||
static etk::UString CreatePosPointer(const etk::UString& _line, int32_t _pos)
|
||||
{
|
||||
etk::UString out;
|
||||
int32_t iii;
|
||||
@ -244,3 +244,43 @@ bool ejson::Document::IParse(const etk::UString& _data, int32_t& _pos, ejson::fi
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
ejson::Value* ejson::Document::GetSub(const etk::UString& _named) const
|
||||
{
|
||||
if (m_subElement == NULL) {
|
||||
return NULL;
|
||||
}
|
||||
ejson::Object* tmp = m_subElement->ToObject();
|
||||
if (NULL==tmp) {
|
||||
return NULL;
|
||||
}
|
||||
return tmp->GetSub(_named);
|
||||
}
|
||||
|
||||
ejson::Object* ejson::Document::GetSubObject(const etk::UString& _named) const
|
||||
{
|
||||
ejson::Value* tmp = GetSub(_named);
|
||||
if (NULL == tmp) {
|
||||
return NULL;
|
||||
}
|
||||
return tmp->ToObject();
|
||||
}
|
||||
|
||||
ejson::String* ejson::Document::GetSubString(const etk::UString& _named) const
|
||||
{
|
||||
ejson::Value* tmp = GetSub(_named);
|
||||
if (NULL == tmp) {
|
||||
return NULL;
|
||||
}
|
||||
return tmp->ToString();
|
||||
}
|
||||
|
||||
ejson::Array* ejson::Document::GetSubArray(const etk::UString& _named) const
|
||||
{
|
||||
ejson::Value* tmp = GetSub(_named);
|
||||
if (NULL == tmp) {
|
||||
return NULL;
|
||||
}
|
||||
return tmp->ToArray();
|
||||
}
|
||||
|
@ -13,6 +13,9 @@
|
||||
#include <etk/unicode.h>
|
||||
#include <etk/Vector.h>
|
||||
#include <etk/UString.h>
|
||||
#include <ejson/String.h>
|
||||
#include <ejson/Array.h>
|
||||
#include <ejson/Object.h>
|
||||
|
||||
namespace ejson
|
||||
{
|
||||
@ -63,7 +66,10 @@ namespace ejson
|
||||
private:
|
||||
ejson::Value* m_subElement; //!< only element that contain the json document:
|
||||
public:
|
||||
// TODO : sdfsdfsdf
|
||||
ejson::Value* GetSub(const etk::UString& _named) const;
|
||||
ejson::Object* GetSubObject(const etk::UString& _named) const;
|
||||
ejson::String* GetSubString(const etk::UString& _named) const;
|
||||
ejson::Array* GetSubArray(const etk::UString& _named) const;
|
||||
private:
|
||||
bool m_writeErrorWhenDetexted;
|
||||
etk::UString m_comment;
|
||||
|
Loading…
x
Reference in New Issue
Block a user