4 * Created on: 06.11.2014
10 #include <AliJSONData.h>
12 ClassImp(AliJSONValue)
14 ClassImp(AliJSONFloat)
15 ClassImp(AliJSONDouble)
17 ClassImp(AliJSONString)
20 const char* AliJSONInt::ToString() const {
21 std::stringstream stringbuilder;
22 stringbuilder << fValue;
23 return stringbuilder.str().c_str();
26 const char* AliJSONFloat::ToString() const {
27 std::stringstream stringbuilder;
28 stringbuilder << fValue;
29 return stringbuilder.str().c_str();
32 const char* AliJSONDouble::ToString() const {
33 std::stringstream stringbuilder;
34 stringbuilder << fValue;
35 return stringbuilder.str().c_str();
38 AliJSONData::AliJSONData(const char* key, const char* value):
42 TString valstring(value);
43 if(!valstring.CompareTo("true"))
44 fValue = new AliJSONBool(kTRUE);
45 else if(!valstring.CompareTo("false"))
46 fValue = new AliJSONBool(kFALSE);
47 else if(valstring.IsDigit()){
48 if(valstring.IsFloat())
49 fValue = new AliJSONDouble(valstring.Atof());
51 fValue = new AliJSONInt(valstring.Atoi());
53 fValue = new AliJSONString(value);
56 const char* AliJSONData::ToString() const {
57 std::stringstream jsonbuilder;
58 jsonbuilder << "\"" << GetName() << "\":\"" << fValue->ToString() << "\"";
59 return jsonbuilder.str().c_str();
62 std::ostream &operator<<(std::ostream &os, const AliJSONValue &val){
67 std::ostream &operator<<(std::ostream &os, const AliJSONData &obj){