490
|
1 /*
|
|
2 1 2 3 4 5 6 7
|
|
3 12345678901234567890123456789012345678901234567890123456789012345678901234567890
|
|
4 */
|
|
5
|
|
6 #include <iostream>
|
|
7 #include <string>
|
|
8 #include <sstream>
|
|
9 #include <assert.h>
|
|
10 #include <json/json.h>
|
|
11
|
|
12
|
|
13 namespace VsolStuff
|
|
14 {
|
|
15 Json::Value StoneSerialize(int32_t value)
|
|
16 {
|
|
17 Json::Value result(value);
|
|
18 return result;
|
|
19 }
|
|
20
|
|
21 Json::Value StoneSerialize(double value)
|
|
22 {
|
|
23 Json::Value result(value);
|
|
24 return result;
|
|
25 }
|
|
26
|
|
27 Json::Value StoneSerialize(bool value)
|
|
28 {
|
|
29 Json::Value result(value);
|
|
30 return result;
|
|
31 }
|
|
32
|
|
33 Json::Value StoneSerialize(const std::string& value)
|
|
34 {
|
|
35 // the following is better than
|
|
36 Json::Value result(value.data(),value.data()+value.size());
|
|
37 return result;
|
|
38 }
|
|
39
|
|
40 template<typename T>
|
|
41 Json::Value StoneSerialize(const std::map<std::string,T>& value)
|
|
42 {
|
|
43 Json::Value result(Json::objectValue);
|
|
44
|
|
45 for (std::map<std::string, T>::const_iterator it = value.cbegin();
|
|
46 it != value.cend(); ++it)
|
|
47 {
|
|
48 // it->first it->second
|
|
49 result[it->first] = StoneSerialize(it->second);
|
|
50 }
|
|
51 return result;
|
|
52 }
|
|
53
|
|
54 template<typename T>
|
|
55 Json::Value StoneSerialize(const std::vector<T>& value)
|
|
56 {
|
|
57 Json::Value result(Json::arrayValue);
|
|
58 for (size_t i = 0; i < value.size(); ++i)
|
|
59 {
|
|
60 result.append(StoneSerialize(value[i]));
|
|
61 }
|
|
62 return result;
|
|
63 }
|
|
64
|
|
65 %enumerationscpp%
|
|
66
|
|
67 %structscpp%
|
|
68
|
|
69 }
|