diff --git a/GURPS/gurps.html b/GURPS/gurps.html
index 2ec047c839..bc2e09141c 100644
--- a/GURPS/gurps.html
+++ b/GURPS/gurps.html
@@ -26359,7 +26359,7 @@ The attacker may choose to hit the original target or the limb you used to parry
let attributes = jsonData.Character.Traits.Attribute;
- let advantages = jsonData.Character.Traits.Advantage;
+ let advantages = getJsonArrayFromTrait(jsonData.Character.Traits.Advantage);
let campaign = jsonData.Character.Campaign;
@@ -26477,6 +26477,29 @@ The attacker may choose to hit the original target or the limb you used to parry
"Fearlessness",
];
+ /**
+ * If a trait, like Advantage only has one advantage,
+ * then the JSON is NOT an array. We have to convert that
+ * element to an array
+ * NOTE: Classic single or array issue with json
+ *
+ * @param json trait A trait(s) like advantages, perks, etc.
+ */
+ function getJsonArrayFromTrait(trait) {
+
+ let traits;
+
+ if (Array.isArray(trait)) {
+ traits = trait;
+ } else {
+ // convert to an array
+ traits = [trait];
+ }
+
+ return traits;
+
+ }
+
/**
* Loops advantages and add advantages
* TODO: Check to see if advantage already exists, then update
@@ -26490,7 +26513,7 @@ The attacker may choose to hit the original target or the limb you used to parry
// make sure we have a valid function
callback = callback || noop;
- let advantages = jsonData.Character.Traits.Advantage;
+ let advantages = getJsonArrayFromTrait(jsonData.Character.Traits.Advantage);
let rows = {};
@@ -26926,9 +26949,9 @@ The attacker may choose to hit the original target or the limb you used to parry
// make sure we have a valid function
callback = callback || noop;
- let perks = jsonData.Character.Traits.Perks;
+ let perks = getJsonArrayFromTrait(jsonData.Character.Traits.Perks);
- let quirks = jsonData.Character.Traits.Quirk;
+ let quirks = getJsonArrayFromTrait(jsonData.Character.Traits.Quirk);
let rows = {};
@@ -27031,7 +27054,7 @@ The attacker may choose to hit the original target or the limb you used to parry
// make sure we have a valid function
callback = callback || noop;
- let disadvantages = jsonData.Character.Traits.Disadvantage;
+ let disadvantages = getJsonArrayFromTrait(jsonData.Character.Traits.Disadvantage);
let rows = {};
@@ -27199,7 +27222,7 @@ The attacker may choose to hit the original target or the limb you used to parry
// make sure we have a valid function
callback = callback || noop;
- let skills = jsonData.Character.Traits.Skill;
+ let skills = getJsonArrayFromTrait(jsonData.Character.Traits.Skill);
let rows = {};
@@ -27423,7 +27446,7 @@ The attacker may choose to hit the original target or the limb you used to parry
// make sure we have a valid function
callback = callback || noop;
- let skills = jsonData.Character.Traits.Skill;
+ let skills = getJsonArrayFromTrait(jsonData.Character.Traits.Skill);
let rows = {};
@@ -27643,7 +27666,7 @@ The attacker may choose to hit the original target or the limb you used to parry
// make sure we have a valid function
callback = callback || noop;
- let items = jsonData.Character.Traits.Equipment;
+ let items = getJsonArrayFromTrait(jsonData.Character.Traits.Equipment);
let rows = {};
@@ -27768,7 +27791,7 @@ The attacker may choose to hit the original target or the limb you used to parry
// make sure we have a valid function
callback = callback || noop;
- let spells = jsonData.Character.Traits.Spell;
+ let spells = getJsonArrayFromTrait(jsonData.Character.Traits.Spell);
let rows = {};