zumindest die öffnende, eckige Klammer für das optionale Argument sollte direkt auf \begin{lstlisting} folgen -- und nicht erst in der nächsten Zeile, sonst wird das, was als optionales Argument gedacht war, als darzustellender Code interpretiert:
Code:
\documentclass{article}
\usepackage{listings}
\begin{document}
See Listing \ref{lst:codejson}.
\begin{lstlisting}[%<--
caption={JSON Format},captionpos=b,label=lst:codejson,language=bash]
[{
"id":0,
"category":"Category",
"chapter":"Chapter",
"requester":"Requester",
"version":"Version",
},
...
]
\end{lstlisting}
\end{document}
VG
Lesezeichen