Johnson takes no-hitter into 7th, Marlins top Mets