No need to specify a "loader class".   The problem was that JsonUtils static methods were using Object.class.getResourceAsStream() which I could see behaving differently.
Now that the static methods in JsonUtils are backed by a real instance of JsonUtil, that JsonUtil can use itself to load resources.