JSONValue.pkg 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. $#include "Resource/JSONValue.h"
  2. enum JSONValueType
  3. {
  4. JSON_NULL,
  5. JSON_BOOL,
  6. JSON_NUMBER,
  7. JSON_STRING,
  8. JSON_ARRAY,
  9. JSON_OBJECT,
  10. };
  11. class JSONValue
  12. {
  13. JSONValue();
  14. JSONValue(bool value);
  15. JSONValue(int value);
  16. JSONValue(unsigned value);
  17. JSONValue(float value);
  18. JSONValue(double value);
  19. JSONValue(const String value);
  20. JSONValue(const char* value);
  21. JSONValue(const JSONArray& value);
  22. JSONValue(const JSONObject& value);
  23. JSONValue(const JSONValue& value);
  24. ~JSONValue();
  25. void SetType(JSONValueType valueType);
  26. tolua_outside void JSONValueSetBool @ SetBool(bool value);
  27. tolua_outside void JSONValueSetInt @ SetInt(int value);
  28. tolua_outside void JSONValueSetUint @ SetUint(unsigned value);
  29. tolua_outside void JSONValueSetFloat @ SetFloat(float value);
  30. tolua_outside void JSONValueSetDouble @ SetDouble(double value);
  31. tolua_outside void JSONValueSetString @ SetString(const String value);
  32. tolua_outside void JSONValueSetArray @ SetArray(const JSONArray& value);
  33. tolua_outside void JSONValueSetObject @ SetObject(const JSONObject& value);
  34. JSONValueType GetType() const;
  35. bool IsNull() const;
  36. bool IsBool() const;
  37. bool IsNumber() const;
  38. bool IsString() const;
  39. bool IsArray() const;
  40. bool IsObject() const;
  41. bool GetBool() const;
  42. int GetInt() const;
  43. unsigned GetUint() const;
  44. float GetFloat() const;
  45. double GetDouble() const;
  46. const String GetString() const;
  47. const JSONArray& GetArray() const;
  48. const JSONObject& GetObject() const;
  49. JSONValue& operator [](unsigned index);
  50. const JSONValue& operator [](unsigned index) const;
  51. void Push(const JSONValue& value);
  52. void Pop();
  53. void Insert(unsigned pos, const JSONValue& value);
  54. void Erase(unsigned pos, unsigned length = 1);
  55. void Resize(unsigned newSize);
  56. unsigned Size() const;
  57. // JSONValue& operator [](const String key);
  58. // const JSONValue& operator [](const String key) const;
  59. void Set(const String key, const JSONValue& value);
  60. const JSONValue& Get(const String key) const;
  61. bool Erase(const String key);
  62. bool Contains(const String key) const;
  63. void Clear();
  64. static const JSONValue EMPTY;
  65. static const JSONArray emptyArray;
  66. static const JSONObject emptyObject;
  67. tolua_readonly tolua_property__is_set bool null;
  68. };
  69. ${
  70. static void JSONValueSetBool(JSONValue* jsonValue, bool value)
  71. {
  72. (*jsonValue) = value;
  73. }
  74. static void JSONValueSetInt(JSONValue* jsonValue, int value)
  75. {
  76. (*jsonValue) = value;
  77. }
  78. static void JSONValueSetUint(JSONValue* jsonValue, unsigned value)
  79. {
  80. (*jsonValue) = value;
  81. }
  82. static void JSONValueSetFloat(JSONValue* jsonValue, float value)
  83. {
  84. (*jsonValue) = value;
  85. }
  86. static void JSONValueSetDouble(JSONValue* jsonValue, double value)
  87. {
  88. (*jsonValue) = value;
  89. }
  90. static void JSONValueSetString(JSONValue* jsonValue, const String& value)
  91. {
  92. (*jsonValue) = value;
  93. }
  94. static void JSONValueSetArray(JSONValue* jsonValue, const JSONArray& value)
  95. {
  96. (*jsonValue) = value;
  97. }
  98. static void JSONValueSetObject(JSONValue* jsonValue, const JSONObject& value)
  99. {
  100. (*jsonValue) = value;
  101. }
  102. $}