Creating structure to better resemble my JSON when exporting/importing

Hi,

I’ve created a structure in my project that when exported gives me the following JSON:

[
{
“Name”: “Shooter”,
“Keywords”:
{
“damage.single”:
{
“list”: [
{
“Quality”: “Common”,
“Value”: 5
},
{
“Quality”: “Rare”,
“Value”: 6
},
{
“Quality”: “Epic”,
“Value”: 7
},
{
“Quality”: “Legendary”,
“Value”: 8
},
{
“Quality”: “Mythical”,
“Value”: 10
}
]
}
}
},
{
“Name”: “Fireball”,
“Keywords”:
{
“damage.aoe”:
{
“list”: []
}
}
}
]

Is it possible to create a structure that would allow to import this structure :
[
{
“Name”: “Shooter”,
“Keywords”: {
“damage.single”: {
“Common”: 5,
“Rare”: 6,
“Epic”: 7,
“Legendary”: 8,
“Mythical”: 10
}
}
},
{
“Name”: “Fireball”,
“Keywords”: {
“damage.aoe”: {
“Common”: 30,
“Rare”: 32,
“Epic”: 34,
“Legendary”: 36,
“Mythical”: 45
},
“damage.dot.duration”: {
“Common”: 5,
“Rare”: 5,
“Epic”: 5,
“Legendary”: 5,
“Mythical”: 5
},
“damage.dot.value”: {
“Common”: 5,
“Rare”: 5.5,
“Epic”: 6,
“Legendary”: 6.5,
“Mythical”: 8
}
}
}
]

They are functionally close but it feels like the first one is more bloated

Any ideas ?

Thanks

Something like this ?

USTRUCT()
struct FRarityValues
{
    GENERATED_BODY()
    UPROPERTY() float Common;
    UPROPERTY() float Rare;
    UPROPERTY() float Epic;
    UPROPERTY() float Legendary;
    UPROPERTY() float Mythical;
};

USTRUCT()
struct FMyStruct
{
    GENERATED_BODY()
    UPROPERTY() FString Shooter;
    UPROPERTY() TMap<FString, FRarityValues> Keywords;
};

Would this be possible to implement directly through blueprint structures ? Or do I have to do it in C++ ?
Thanks