code: public void load(ResourceLocation resourceLocation)
  	{
  		IResource res = Silenced.get(() -> Minecraft.getMinecraft().getResourceManager().getResource(resourceLocation));
  		if (res == null)
  			return;
  
  		GsonBuilder gsonBuilder = new GsonBuilder();
  		//we don't want GSON to create a new AnimationImporte but use this current one
  		gsonBuilder.registerTypeAdapter(AnimationImporter.class, (InstanceCreator<AnimationImporter>) type -> this);
  		//no builtin way to dezerialize multimaps
  		gsonBuilder.registerTypeAdapter(Multimap.class, (JsonDeserializer<Multimap<String, Anim>>) this::deserializeAnim);
  		Gson gson = gsonBuilder.create();
  
  		try (Reader reader = new InputStreamReader(res.getInputStream(), "UTF-8"))
  		{
  			JsonReader jsonReader = new JsonReader(reader);
  			jsonReader.setLenient(true);
  			gson.fromJson(jsonReader, AnimationImporter.class);
  		}
  		catch (Exception e)
  		{
  			MalisisCore.log.error("Failed to read {}", resourceLocation, e);
  		}
  	}
docs: Loads and reads the JSON.
  
  @param resourceLocation the resource location