fix #94: fall back to string if json fails