aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/basetypes/MCJSON.h
blob: 4f4ba761045e41ab074f9eaeb3c6fdc489a053ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//
//  MCJSON.h
//  hermes
//
//  Created by DINH Viêt Hoà on 4/8/13.
//  Copyright (c) 2013 MailCore. All rights reserved.
//

#ifndef __MAILCORE_MCJSON_H_
#define __MAILCORE_MCJSON_H_

#include <MailCore/MCObject.h>
#include <MailCore/MCHashMap.h>
#include <MailCore/MCArray.h>
#include <MailCore/MCValue.h>
#include <MailCore/MCString.h>
#include <MailCore/MCData.h>

namespace mailcore {

    class Null;
    
    class JSON {
    public:
        static String * objectToJSONString(Object * object, bool pretty = false);
        static Data * objectToJSONData(Object * object, bool pretty = false);
        static Object * objectFromJSONString(String * json);
        static Object * objectFromJSONData(Data * json);
        
    private:
        static void * hashMapToJSON(HashMap * hashmap);
        static void * arrayToJSON(Array * array);
        static void * stringToJSON(String * string);
        static void * doubleToJSON(Value * value);
        static void * boolToJSON(Value * value);
        static void * nullToJSON(Null * value);
        static void * objectToJSON(Object * object);
        
        static HashMap * hashMapFromJSON(void * json);
        static Array * arrayFromJSON(void * json);
        static String * stringFromJSON(void * json);
        static Value * doubleFromJSON(void * json);
        static Value * boolFromJSON(void * json);
        static Null * nullFromJSON(void * json);
        static Object * objectFromJSON(void * json);
    };
    
}

#endif /* defined(__hermes__MCJSON__) */