Leider gibt es dafür in Listings keine Option, aber [Alan Munn auf TeX.SX](http://tex.stackexchange.com/a/33188/10995) hat die passende Lösung.
    \begin{filecontents*}{listings.json}
    {
      "_erster": "erster",
      "_zweiter": "zweiter",
      "_dritter": "ABC----DE------8~~~~~.8888"
    }
    \end{filecontents*}
    
    \documentclass{article}
    
    \usepackage{listings}
    
    \makeatletter
    \lst@CCPutMacro\lst@ProcessOther {"2D}{\lst@ttfamily{-{}}{-{}}}
    \@empty\z@\@empty
    \makeatother
    
    \usepackage{color}
    
    \begin{document}
    
    \lstdefinestyle{json}{
        basicstyle=\scriptsize,
        breaklines=true,
        frame=lines,
        numbers=left,
        numberstyle=\tiny,
        string=[s]{"}{"},
        stringstyle=\color{blue},
        comment=[l]{:},
        commentstyle=\color{black},
    }
    
    \lstinputlisting[
    caption={listings test1}\label{lst:test1},
    captionpos=t,
    style=json,
    ]{listings.json}
    
    \end{document}
![alt text][1]
Verwendet man direkt eine dicktengleiche Schrift (`basicstyle=\ttfamily`) spart man sich die Umstände.
    \begin{filecontents*}{listings.json}
    {
      "_erster": "erster",
      "_zweiter": "zweiter",
      "_dritter": "ABC----DE------8~~~~~.8888"
    }
    \end{filecontents*}
    
    \documentclass{article}
    
    \usepackage{listings}
    \usepackage{color}
    
    \begin{document}
    
    \lstdefinestyle{json}{
        basicstyle=\ttfamily\scriptsize,
        breaklines=true,
        frame=lines,
        numbers=left,
        numberstyle=\tiny,
        string=[s]{"}{"},
        stringstyle=\color{blue},
        comment=[l]{:},
        commentstyle=\color{black},
    }
    
    \lstinputlisting[
    caption={listings test1}\label{lst:test1},
    captionpos=t,
    style=json,
    ]{listings.json}
    
    \end{document}
![alt text][2]
  [1]: http://texwelt.de/wissen/upfiles/test_292.pnghttp://texwelt.de/wissen/upfiles/test_292.png
  [2]: http://texwelt.de/wissen/upfiles/test_293.png