[Free][Open Source] DataConfig - JSON and MsgPack Serializer for Unreal Engine

Hi everyone!

I’ve been working on a serialization framework for Unreal Engine. Recently I’ve got a new release with roundtrip-able serializers and JSON/MsgPack support. See : Introducing DataConfig 1.2.

In short DataConfig is an open source C++ library implementing serialization framework that allows custom logic. A classic example is converting FColor between a hex string#RRGGBBAA for example:

USTRUCT()
struct FDcExtraTestStructWithColor1
{
    GENERATED_BODY()

    UPROPERTY() FColor ColorField1;
    UPROPERTY() FColor ColorField2;
};

FString Str = TEXT(R"(
    {
        "ColorField1" : "#0000FFFF",
        "ColorField2" : "#FF0000FF",
    }
)");

DataConfig makes it trivia to implement the conversion logic and it works recursively.

Additionally we have more cool examples:

If you’re coming from Unity3D then DataConfig is basically FullSerializer or OdinSerializer implemented for UE :wink:

If you’re a C++ programmer doing JSON read write in Unreal Engine you should give this a try. We implemented new JSON parser and writer with no external dependency. It supports relaxed JSON spec that allows // line commnet, /* block comment*/ and trailing comma.

We also have a separated plugin DataConfig JSON Asset on the market place.

It allows batch and auto reimport of JSON into DataAsset.

DcJsonAsset Import

We think it’s pretty cool and useful. Post your questions and feedback here :smile:

Hi folks! We’ve just get 1.3 release out the door! It got full UE5 support and tons of bug fixes.

Checkout our the release notes: DataConfig Core and JSON Asset 1.3 Release - slowburn.dev

Hi folks, it’s been a long time and we’ve been working on getting DataConfig better during this period.

We just pushed 1.4.3 with some cool samples showing of DataConfig flexibilities:

// NDJSON
FString Str = TEXT(R"(

    { "Name" : "Foo", "Id" : 1, "Type" : "Alpha" }
    { "Name" : "Bar", "Id" : 2, "Type" : "Beta" }
    { "Name" : "Baz", "Id" : 3, "Type" : "Gamma" }

)");

UTEST_OK("Extra NDJSON", LoadNDJSON(*Str, Dest));

FString SavedStr;
UTEST_OK("Extra NDJSON", SaveNDJSON(Dest, SavedStr));

// root object/array
FString Str = TEXT(R"(

    "Name" : "Foo",
    "Id" : 253,
    "Type" : "Beta"

)");
// ...
FString Str = TEXT(R"(

    "Alpha",
    "Beta",
    "Gamma"

)");

Checkout the blogpost here:
https://slowburn.dev/blog/flexible-json-serialization-ue-dataconfig

Greetings folks. Another year passed and we finally added blueprint nodes for loading/dumping JSON

Read about it here: https://slowburn.dev/blog/dataconfig-1-5-and-1-6/
Grab the latest release here: https://github.com/slowburn-dev/DataConfig/releases/tag/1.6.0