4 * Created on: 06.11.2014
10 #include <AliJSONData.h>
12 ClassImp(AliJSONValue)
14 ClassImp(AliJSONFloat)
15 ClassImp(AliJSONDouble)
17 ClassImp(AliJSONString)
20 std::string AliJSONInt::ToString() const {
21 std::stringstream stringbuilder;
22 stringbuilder << fValue;
23 return stringbuilder.str();
26 std::string AliJSONFloat::ToString() const {
27 std::stringstream stringbuilder;
28 stringbuilder << fValue;
29 return stringbuilder.str();
32 std::string AliJSONDouble::ToString() const {
33 std::stringstream stringbuilder;
34 stringbuilder << fValue;
35 return stringbuilder.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 std::string 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){