Assuming the sample string is in A1
Code:
Sub GetStates()
Dim str As String, i As Integer
Dim ar As Variant, arr As Variant
str = Range("A1").Text
str = Replace(Replace(Replace(Replace(Replace(str, "}", ""), "[", ""), "]", ""), """", ""), ",", "")
ar = Split(str, "{")
For i = LBound(ar) To UBound(ar)
If InStr(ar(i), "state") > 0 Then
arr = Split(ar(i), ":")
MsgBox arr(UBound(arr))
End If
Next i
End Sub