There is a trick way: Highlight all strings except those following a colon.

\documentclass{article}
\usepackage{listings,xcolor}
\begin{document}
\lstset{
string=[s]{"}{"},
stringstyle=\color{blue},
comment=[l]{:},
commentstyle=\color{black},
}
\begin{lstlisting}
{
"firstName": "John",
"lastName": "Smith",
"isAlive": true,
"age": 25,
"height_cm": 167.6,
"address": {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021-3100"
},
"phoneNumbers": [
{
"type": "home",
"number": "212 555-1234"
},
{
"type": "office",
"number": "646 555-4567"
}
]
}
\end{lstlisting}
\end{document}
PS: Internally, the following aspects strings
, comments
, escape
, style
, language
, keywords
, labels
, lineshape
, frames
, emph
, index
are treat equally. In case you need string
/comment
for the actual string/comment, you can add an aspect's dealing with attributes and values by yourself.