Как получить json через async task в android?
Ну потому что execute дейтствительно возврщает AsyncTask а не String. Передайте в констурктор вашего AsyncTask'a какой-то объект которому можно всунуть результат в методе onPostExecute, ну и сделайте класс task'a статическим, зачем ему неявная ссылка на DataReceiver?
У asynctask есть onPostExecute, туда будет возвращен json
А вообще, я вам сэкономлю кучу времени - посмотрите в сторону retrofit