John started the opening Premier League game of the season away at West Ham and has played in the Capital One Cup against Accrington and West Ham.
He also made his debut in Wales' 1 - 0 home win over Macedonia at Cardiff City Stadium in October.
"Declan has done extremely well and is thoroughly deserving of his new contract at Cardiff City," Malky Mackay told the club's official website.
"In addition, we are delighted to have secured his talent on a long-term basis. He's a fine young man, disciplined and professional, who will continue working hard as part of our Premier League squad.
"I've no doubt that Declan is going to have a big future with us and for his country."