16 static bool StringToJson(
const FString& JsonString, TSharedPtr<FJsonObject>& JsonObject);
17 static bool JsonToString(
const TSharedPtr<FJsonObject>& JsonObject, FString& JsonString);
19 template <
typename OutStructType>
20 static bool ParseJSONToStruct(
const FString& Data, OutStructType* OutStruct)
22 TSharedPtr<FJsonObject> JsonObject;
23 if (!UJsonFuncLib::StringToJson(Data, JsonObject))
return false;
25 RemoveNullFields(JsonObject);
26 FJsonObjectConverter::JsonObjectToUStruct(JsonObject.ToSharedRef(), OutStruct, 0, 0);
29 static FString RemoveOptionalValuesThatNotSet(
const FString& JsonString);
30 static void RemoveEmptyArrays(
const TSharedPtr<FJsonObject>& JsonObject);
33 static FString MakeFunctionsString(
const TSharedPtr<FJsonObject>& Json);
34 static FString CleanUpFunctionsObject(
const FString& Input);
37 static bool OpenAIResponseContainsError(
const TSharedPtr<FJsonObject>& JsonObject);
40 static const FString START_FUNCTION_OBJECT_MARKER;
41 static const FString END_FUNCTION_OBJECT_MARKER;
43 static void RemoveNullFields(
const TSharedPtr<FJsonObject>& JsonObject);
44 static void RemoveOptionalValuesInJsonObject(
const TSharedPtr<FJsonObject>& JsonObject);
45 static void ProcessJsonArrayRemovingEmptyArrays(TArray<TSharedPtr<FJsonValue>>& JsonArray);