James Parsons commence à jouer au rugby à l'âge de cinq ans avec le club de Takapuna[4]. Il évolue ensuite dans toutes les catégories de jeunes, avant de jouer avec l'équipe fanion dans le championnat amateur de la fédération de North Harbour[4]. Il joue également avec l'équipe scolaire du King's College(en)[5].
Il commence sa carrière professionnelle en 2007 avec l'équipe de North Harbour en NPC[1],[6].
En 2010, il est mis à l'essai par la franchise australienne de Super Rugby de la Western Force, mais ne se voit pas obtenir un contrat, à cause d'un problème contractuel[7],[8].
Il fait finalement ses débuts en Super Rugby en 2012 avec la franchise des Blues[9]. À partir de la saison 2015, il occupe épisodiquement le rôle de capitaine de l'équipe[10],[11]. Il joue son centième match de Super Rugby en , devenant seulement le sixième joueur des Blues à atteindre cette barre symbolique[5].
En , il annonce être forcé de mettre un terme à sa carrière de joueur, après avoir subi de nombreuses commotions cérébrales[12].
Peu après son match avec les Barbarians, il est appelé pour la première fois par Steve Hansen pour évoluer avec les All Blacks afin de remplacer Nathan Harris blessé[14]. Il connait donc sa première cape internationale le à l'occasion d'un test-match contre l'équipe d'Écosse à Murrayfield[3].
L'année suivante, il joue avec les Barbarians néo-zélandais face aux Māori All Blacks[15].
Il est rappelé en sélection nationale en , toujours en remplacement de Harris blessé, dans le cadre du Rugby Championship[16]. Il obtient sa deuxième sélection lors de la compétition, face à l'Australie le [3]. Il s'agit de sa dernière apparition avec les All Blacks[3].