Json Blueprint Utilities Plugin
Official JSON support in Blueprints via the Json Blueprint Utilities plugin.

The Json Blueprint Utilities plugin adds JSON support to Blueprints. It ships with Unreal Engine 5 but isn’t enabled by default, and in Unreal Engine 5.8 it’s still marked Beta.
How do I enable the plugin?
Open Edit > Plugins, search for Json Blueprint Utilities, and enable it. Restart the editor. All nodes appear under the Json category in the Blueprint context menu.
What nodes does it add?
The plugin provides 9 Blueprint nodes:
| Node | What It Does |
|---|---|
Load Json from String | Parses a JSON string into a JsonObject |
Load Json from File | Reads a file from disk and parses it into a JsonObject |
Get Json String | Serializes a JsonObject back into a string |
Save Json to File | Writes a JsonObject to a file on disk |
Get Field | Reads a field from a JsonObject with a polymorphic output pin |
Set Field | Writes a field to a JsonObject with a polymorphic input pin |
Has Field | Checks whether a field exists on a JsonObject |
Get Field Names | Returns all top-level keys as an array of strings |
Convert Struct To Json String | Serializes any USTRUCT into a JSON string |
The variable type for storing and passing JSON data between nodes is JsonObject, which is FJsonObjectWrapper in C++.
How do the polymorphic pins work?
Get Field, Set Field, and Convert Struct To Json String use polymorphic pins, so the pin type adapts to whatever you connect to it. For example, connecting a Float variable to the Get Field output pin tells the node to extract a number. This works with strings, integers, floats, booleans, structs, and arrays.
Connect the target variable first, then wire the rest. A gray wildcard pin means the node is still waiting to know what type to resolve to.
Frequently asked questions
What happens when a field is missing?
Execution carries on. Get Field returns false and logs a Field '<Name>' was not found on the provided JSON object. warning, so it’s ideal to check with Has Field first when working with data you don’t control.
How do I convert a JSON string back into a struct?
There’s no Json String to Struct node. Thankfully, there’s a workaround: use Load Json from String, then Get Field with an empty Field Name and the struct type connected to the output. Set Field with an empty Field Name does the reverse, writing a whole struct into the JsonObject.
Why is loading or saving a file failing?
Load Json from File fails with an error when the file is missing, and Save Json to File fails when the target folder is missing, so create the folder first.
Why does parsing a large file cause a hitch?
Every node runs synchronously on the thread that calls it, which is the game thread for most Blueprint graphs. For large files, parse them in C++ on a background thread instead.
Can I replicate a JsonObject variable?
JsonObject is a poor fit for replication, since only its JsonString member replicates and Load Json from String leaves that string empty. Replicate the output of Get Json String as a String instead, then parse it with Load Json from String on the receiving end.
Links
Check out the following resources to learn more about the subject.
Unreal Directive is free and ad-free.
If it saved you time, you can help keep it that way.

