Json

Note: not necessarily indending to push this to zfsonlinux.  Creating a pull request seems to be the only way of leaving code review comments?  Let me know if I'm using github wrong.
again probably simpler to create a new func list_callback_json() to handle the json case.