fix: json parse logic