25 for(std::vector<AliJSONData *>::iterator it =
fEntries.begin(); it !=
fEntries.end(); it++){
29 for(std::vector<AliJSONSyntaxTreeNode *>::iterator it =
fDaughters.begin(); it !=
fDaughters.end(); it++){
46 for(std::vector<AliJSONSyntaxTreeNode *>::iterator it =
fDaughters.begin(); it !=
fDaughters.end(); it++)
47 (*it)->SetOwner(owner);
66 TString jsontstring(jsonstring);
67 jsontstring.ReplaceAll(
" ",
"");
70 int first(jsontstring.First(
'{')+1), last(jsontstring.Last(
'}'));
71 jsontstring = jsontstring(first, last-first+1);
72 bool hasNext = jsontstring.Length() > 0;
74 if(jsontstring[0] ==
'}'){
75 current = current->GetMotherNode();
76 jsontstring = jsontstring(1, jsontstring.Length()-1);
77 if(!(jsontstring.Length() || current)) hasNext =
false;
81 int separator = jsontstring.First(
':');
82 if(separator == kNPOS){
86 TString key = jsontstring(0,separator-1);
87 key.ReplaceAll(
"\"",
"");
88 jsontstring = jsontstring(separator + 1, jsontstring.Length() - (separator + 1));
89 if(jsontstring[0] ==
'{'){
91 current = current->CreateDaughter(key.Data());
92 jsontstring = jsontstring(1,jsontstring.Length()-1);
95 separator = jsontstring.First(
',');
96 if(separator == kNPOS){
97 separator = jsontstring.First(
'}');
99 TString value = jsontstring(0, separator -1);
100 jsontstring = jsontstring(separator+1, jsontstring.Length() - (separator + 1));
101 value.ReplaceAll(
"\"",
"");
102 current->AddEntry(
new AliJSONData(key.Data(), value.Data()));
111 std::vector<AliJSONData *> &rootnodeentries = ast->
GetEntries();
112 for(std::vector<AliJSONData *>::iterator it = rootnodeentries.begin(); it != rootnodeentries.end(); it++)
114 std::vector<AliJSONSyntaxTreeNode *> &daughters = ast->
GetDaughters();
115 for(std::vector<AliJSONSyntaxTreeNode *>::iterator it = daughters.begin(); it != daughters.end(); it++)
116 AddNodeToList(*it, entries);
124 entries->SetName(node->
GetName());
125 std::vector<AliJSONData *> &nodeentries = node->
GetEntries();
126 std::vector<AliJSONSyntaxTreeNode *> &daughters = node->
GetDaughters();
127 for(std::vector<AliJSONData *>::iterator it = nodeentries.begin(); it != nodeentries.end(); it++)
129 for(std::vector<AliJSONSyntaxTreeNode *>::iterator it = daughters.begin(); it != daughters.end(); it++)
130 AddNodeToList(*it, entries);
131 consumer->Add(entries);
std::vector< AliJSONSyntaxTreeNode * > fDaughters
AliJSONSyntaxTreeNode(const char *name, AliJSONSyntaxTreeNode *mother)
std::vector< AliJSONSyntaxTreeNode * > & GetDaughters()
std::vector< AliJSONData * > fEntries
std::vector< AliJSONData * > & GetEntries()
void AddNodeToList(AliJSONSyntaxTreeNode *node, TList *consumer) const
const char * GetName() const
AliJSONSyntaxTreeNode * CreateDaughter(const char *name)
TList * Decode(const char *jsosnstring) const
void AddEntry(AliJSONData *entry)
void SetOwner(bool owner=true)