본관은 안동(安東). 자는 선오(善吾), 호는 동야(東埜). 할아버지는 김응태(金應泰)이고, 아버지는 김제순(金濟淳)이며, 첨지중추부사 김우순(金宇淳)에게 입양되었다.
1763년(영조 39) 사마시를 거쳐 증광 문과에 병과로 급제, 성균관에 보직되고 이듬해 만녕전별검(萬寧殿別檢)에 이어 전적(典籍)과 병조낭관(兵曹郎官) 등을 지냈다.
1773년 시폐(時弊: 당시에 정치적·사회적인 문제나 폐단)를 논하는 소를 올려 문제가 되자, 낙향하였다가 이듬해 지평(持平)에 복직되었다. 1786년(정조 10)에는 옛 사람의 선행을 그린 그림을 세자에게 바쳐 모범으로 삼도록 하여 정조의 칭송을 받았다.
뒤에 현풍·음죽(陰竹)의 현감을 역임하였고, 1799년 통정대부에 가자되어 형조참의를 지냈다. 경상도 안동(安東) 출신이며, 문집으로 『동야집(東埜集)』 14권 6책이 있다.