public Category buildCategory(JsonObject object, Category parent) {
		// Creation of category.
		Category category = new Category();
		category.setParent(parent);
		category.setId(object.get("id").getAsString());
		category.setName(object.get("name").getAsString());
		category.setPluralName(object.get("pluralName").getAsString());
		category.setShortName(object.get("shortName").getAsString());
		
		// Creation of the icon of the category.
		JsonObject iconObject = object.get("icon").getAsJsonObject();
		Collection<String> iconCollection = new ArrayList<String>();
		iconCollection.add(iconObject.get("prefix").getAsString());
		iconCollection.add(iconObject.get("suffix").getAsString());
		category.setIcon(iconCollection);
		
		// If the category has children, the method buildCategories will call
		// recursively on each child the method buildCategory.
		if (object.get("categories") != null) {
			category.setCategories(buildCategories(object.get("categories").getAsJsonArray(), category));
		} else {
			category.setCategories(new ArrayList<Category>());
		}
		
		return category;
	}