Version 1: private static void setProperties() { player .add(NamedValue.of("Name", "Brian")) .add(NamedValue.of("Durability", 73.5)) .add(NamedValue.of("Damage", 3.44)) .add(NamedValue.of("Enchantability", 1.2)) .add(NamedValue.of("Hunger", 10)) .add(NamedArray.of("Inventory", NamedObject.of("Bastard Sword", NamedValue.of("Durability", 85.2), NamedValue.of("Enchantability", 13.75), NamedValue.of("Damage", 12), NamedObject.of("Enchantments", NamedValue.of("Keening", 1), NamedValue.of("Sunder", 1), NamedValue.of("Wraithguard", 1)), NamedObject.of("Requirements", NamedValue.of("Strength", 35), NamedValue.of("Wisdom", 15))), NamedObject.of("Tower Shield", NamedValue.of("Durability", 85.2), NamedValue.of("Enchantability", 13.75), NamedValue.of("Damage", 12), NamedObject.of("Enchantments", NamedValue.of("Keening", 1), NamedValue.of("Sunder", 1), NamedValue.of("Wraithguard", 1)), NamedObject.of("Requirements", NamedValue.of("Strength", 35), NamedValue.of("Wisdom", 15))), NamedObject.of("Golden Scepter", NamedValue.of("Durability", 85.2), NamedValue.of("Enchantability", 13.75), NamedValue.of("Damage", 12), NamedObject.of("Enchantments", NamedValue.of("Keening", 1), NamedValue.of("Sunder", 1), NamedValue.of("Wraithguard", 1)), NamedObject.of("Requirements", NamedValue.of("Strength", 35), NamedValue.of("Wisdom", 15))))); } Version 2: private static void setProperties() { player .add(NamedValue.of("Name", "Brian")) .add(NamedValue.of("Durability", 73.5)) .add(NamedValue.of("Damage", 3.44)) .add(NamedValue.of("Enchantability", 1.2)) .add(NamedValue.of("Hunger", 10)) .add(NamedArray.of("Inventory", NamedObject.of("Bastard Sword", NamedValue.of("Durability", 85.2), NamedValue.of("Enchantability", 13.75), NamedValue.of("Damage", 12), NamedObject.of("Enchantments", NamedValue.of("Keening", 1), NamedValue.of("Sunder", 1), NamedValue.of("Wraithguard", 1)), NamedObject.of("Requirements", NamedValue.of("Strength", 35), NamedValue.of("Wisdom", 15) ) ), NamedObject.of("Tower Shield", NamedValue.of("Durability", 85.2), NamedValue.of("Enchantability", 13.75), NamedValue.of("Damage", 12), NamedObject.of("Enchantments", NamedValue.of("Keening", 1), NamedValue.of("Sunder", 1), NamedValue.of("Wraithguard", 1)), NamedObject.of("Requirements", NamedValue.of("Strength", 35), NamedValue.of("Wisdom", 15) ) ), NamedObject.of("Golden Scepter", NamedValue.of("Durability", 85.2), NamedValue.of("Enchantability", 13.75), NamedValue.of("Damage", 12), NamedObject.of("Enchantments", NamedValue.of("Keening", 1), NamedValue.of("Sunder", 1), NamedValue.of("Wraithguard", 1)), NamedObject.of("Requirements", NamedValue.of("Strength", 35), NamedValue.of("Wisdom", 15) ) ) ) ); } JSON Output: { "Player":{ "Name":"Brian", "Durability":73.5, "Damage":3.44, "Hunger":10, "Inventory":[ { "Bastard Sword":{ "Durability":85.2, "Enchantability":13.75, "Damage":12, "Enchantments":{ "Keening":1, "Sunder":1, "Wraithguard":1 }, "Requirements":{ "Strength":35, "Wisdom":15 } } }, { "Tower Shield":{ "Durability":85.2, "Enchantability":13.75, "Damage":12, "Enchantments":{ "Keening":1, "Sunder":1, "Wraithguard":1 }, "Requirements":{ "Strength":35, "Wisdom":15 } } }, { "Golden Scepter":{ "Durability":85.2, "Enchantability":13.75, "Damage":12, "Enchantments":{ "Keening":1, "Sunder":1, "Wraithguard":1 }, "Requirements":{ "Strength":35, "Wisdom":15 } } } ] } }