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