MatureJsonObjectHelpers.h 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  1. // Copyright 2024 Tracer Interactive, LLC. All Rights Reserved.
  2. #pragma once
  3. #include "CoreMinimal.h"
  4. #include "Kismet/BlueprintFunctionLibrary.h"
  5. #include "MatureJsonValue.h"
  6. #include "MatureJsonObject.h"
  7. #include "MatureJsonList.h"
  8. #include "MatureJsonObjectHelpers.generated.h"
  9. UCLASS()
  10. class MATUREJSON_API UMatureJsonObjectHelpers : public UBlueprintFunctionLibrary
  11. {
  12. GENERATED_BODY()
  13. public:
  14. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  15. static FMatureJsonValue AddKey(FMatureJsonObject JObject,const FString& key);
  16. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  17. static FMatureJsonValue GetKey(UPARAM(ref) FMatureJsonObject& JObject,const FString& key);
  18. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  19. static int32 Size(UPARAM(ref) FMatureJsonObject& JObject);
  20. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  21. static bool IsEmpty(UPARAM(ref) FMatureJsonObject& JObject);
  22. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  23. static void Clear(FMatureJsonObject JObject);
  24. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  25. static bool HasKey(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  26. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  27. static void RemoveKey(FMatureJsonObject JObject,const FString& Key);
  28. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  29. static TArray<FString> GetKeys(UPARAM(ref) FMatureJsonObject& JObject) ;
  30. // convert a map of booleans to object.
  31. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  32. static FMatureJsonObject FromMapBool(const TMap<FString, bool>& Map);
  33. // convert a map of floats to object.
  34. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  35. static FMatureJsonObject FromMapFloat(const TMap<FString, float>& Map);
  36. // convert a map of integers to object.
  37. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  38. static FMatureJsonObject FromMapInt(const TMap<FString, int32>& Map);
  39. // convert a map of numbers to object.
  40. //UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  41. static FMatureJsonObject FromMapDouble(const TMap<FString, double>& Map);
  42. // convert a map of strings to object.
  43. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  44. static FMatureJsonObject FromMapString(const TMap<FString, FString>& Map);
  45. // convert a map of date/times to object.
  46. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  47. static FMatureJsonObject FromMapDateTime(const TMap<FString, FDateTime>& Map);
  48. // convert a map of GUIDs to object.
  49. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  50. static FMatureJsonObject FromMapGuid(const TMap<FString, FGuid>& Map);
  51. // convert a map of colors to object.
  52. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  53. static FMatureJsonObject FromMapColor(const TMap<FString, FColor>& Map);
  54. // convert a map of linear colors to object.
  55. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  56. static FMatureJsonObject FromMapLinearColor(const TMap<FString, FLinearColor>& Map);
  57. // convert a map of rotators to object.
  58. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  59. static FMatureJsonObject FromMapRotator(const TMap<FString, FRotator>& Map);
  60. // convert a map of transforms to object.
  61. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  62. static FMatureJsonObject FromMapTransform(const TMap<FString, FTransform>& Map);
  63. // convert a map of vectors to object.
  64. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  65. static FMatureJsonObject FromMapVector(const TMap<FString, FVector>& Map);
  66. // convert a map of vectors to object.
  67. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  68. static FMatureJsonObject FromMapValue(const TMap<FString, FMatureJsonValue>& Map);
  69. // Merge a JSON object to this object.
  70. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  71. static FMatureJsonObject MergeObject(FMatureJsonObject JObject, const FMatureJsonObject& inValue);
  72. //
  73. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  74. static FMatureJsonObject AddMapValue(FMatureJsonObject JObject, const TMap<FString, FMatureJsonValue>& Map);
  75. // Set a property as a boolean.
  76. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  77. static FMatureJsonObject AddKeyBool(FMatureJsonObject JObject, const FString& Key, bool Value);
  78. // Set a property as a float.
  79. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  80. static FMatureJsonObject AddKeyFloat(FMatureJsonObject JObject, const FString& Key, float Value);
  81. // Set a property as an integer.
  82. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  83. static FMatureJsonObject AddKeyInt(FMatureJsonObject JObject, const FString& Key, int32 Value);
  84. // Set a property as a number.
  85. //UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  86. static FMatureJsonObject AddKeyDouble(FMatureJsonObject JObject, const FString& Key, double Value);
  87. // Set a property as a string.
  88. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  89. static FMatureJsonObject AddKeyString(FMatureJsonObject JObject, const FString& Key, const FString& Value);
  90. // Set a property as a date/time.
  91. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  92. static FMatureJsonObject AddKeyDateTime(FMatureJsonObject JObject, const FString& Key, const FDateTime& Value);
  93. // Set a property as a GUID.
  94. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  95. static FMatureJsonObject AddKeyGuid(FMatureJsonObject JObject, const FString& Key, const FGuid& Value);
  96. // Set a property as a color.
  97. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  98. static FMatureJsonObject AddKeyColor(FMatureJsonObject JObject, const FString& Key, const FColor& Value);
  99. // Set a property as a linear color.
  100. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  101. static FMatureJsonObject AddKeyLinearColor(FMatureJsonObject JObject, const FString& Key, const FLinearColor& Value);
  102. // Set a property as a rotator.
  103. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  104. static FMatureJsonObject AddKeyRotator(FMatureJsonObject JObject, const FString& Key, const FRotator& Value);
  105. // Set a property as a transform.
  106. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  107. static FMatureJsonObject AddKeyTransform(FMatureJsonObject JObject, const FString& Key, const FTransform& Value);
  108. // Set a property as a vector.
  109. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  110. static FMatureJsonObject AddKeyVector(FMatureJsonObject JObject, const FString& Key, const FVector& Value);
  111. // Set a property as a JSON value.
  112. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  113. static FMatureJsonObject AddKeyValue(FMatureJsonObject JObject, const FString& Key, const FMatureJsonValue& Value);
  114. // Set a property as a JSON object.
  115. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  116. static FMatureJsonObject AddKeyObject(FMatureJsonObject JObject, const FString& Key, const FMatureJsonObject& Value);
  117. // Set a property as a JSON array.
  118. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  119. static FMatureJsonObject AddKeyList(FMatureJsonObject JObject, const FString& Key, const FMatureJsonList& Value);
  120. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  121. static FLinearColor GetLinearColor(UPARAM(ref) FMatureJsonObject& JObject);
  122. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  123. static FRotator GetRotator(UPARAM(ref) FMatureJsonObject& JObject);
  124. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  125. static FTransform GetTransform(UPARAM(ref) FMatureJsonObject& JObject);
  126. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  127. static FVector GetVector(UPARAM(ref) FMatureJsonObject& JObject);
  128. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  129. static bool GetKeyBool(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  130. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  131. static float GetKeyFloat(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  132. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  133. static int32 GetKeyInt(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key);
  134. static int64 GetKeyInt64(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key);
  135. static uint32 GetKeyUint(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  136. static uint64 GetKeyUint64(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  137. //UFUNCTION(BlueprintCallable, Category = "Mature Json|Object")
  138. static double GetKeyDouble(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  139. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  140. static FString GetKeyString(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  141. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  142. static FGuid GetKeyGuid(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  143. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  144. static FColor GetKeyColor(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  145. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  146. static FDateTime GetKeyDateTime(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  147. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  148. static FLinearColor GetKeyLinearColor(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  149. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  150. static FRotator GetKeyRotator(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  151. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  152. static FTransform GetKeyTransform(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  153. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object|Engine")
  154. static FVector GetKeyVector(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  155. UFUNCTION(BlueprintPure, Category = "Mature Json|Object")
  156. static FMatureJsonValue GetKeyValue(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  157. UFUNCTION(BlueprintPure, Category = "Mature Json|Object")
  158. static FMatureJsonObject GetKeyObject(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  159. UFUNCTION(BlueprintPure, Category = "Mature Json|Object")
  160. static FMatureJsonList GetKeyList(UPARAM(ref) FMatureJsonObject& JObject, const FString& Key) ;
  161. };
  162. UCLASS()
  163. class MATUREJSON_API UMatureJsonObjectIteratorHelpers : public UBlueprintFunctionLibrary
  164. {
  165. GENERATED_BODY()
  166. public:
  167. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object Iterator")
  168. static FMatureJsonObjectIterator Begin(UPARAM(ref) FMatureJsonObject& JObject);
  169. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object Iterator")
  170. static FMatureJsonObjectIterator End(UPARAM(ref) FMatureJsonObject& JObject);
  171. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object Iterator")
  172. static void Next( FMatureJsonObjectIterator Iterator,int step=1);
  173. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object Iterator")
  174. static bool IsValid(UPARAM(ref) FMatureJsonObjectIterator& Iterator);
  175. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object Iterator")
  176. static FString Key(UPARAM(ref) FMatureJsonObjectIterator& Iterator);
  177. UFUNCTION(BlueprintCallable, Category = "Mature Json|Object Iterator")
  178. static FMatureJsonValue Value(UPARAM(ref) FMatureJsonObjectIterator& Iterator);
  179. };