Let's be clear here that JSON is just Javascript Object Notation. So what you have is several objects:
{"hashcode":[], "stringMap":{":id":"50",":question":"My roof"}, ":size":"2", ":type":"java.util.HashMap", ":typeId":"123"}
Breaking this code down further, we find the following:
"hashcode":[] //an empty array named hashcode
"stringMap":{":id":"50",":question":"My roof"} //an object named stringMap with two properties, ":id" and ":question" (not sure why the : are there, this is abnormal)
":size":"2"//a string ":size" set to the string "2" (again, what's with the :?)
":type":"java.util.HashMap"//a string ":type" set to the string "java.util.HashMap"
":typeId":"123"//a string ":typeId" set to the string "123"
You can normally reference any one of these objects using "dot" notation in Javascript. The whole thing functions a lot like a Java Enum/Hashmap/ArrayList. However, because of those ":" you have throughout it is not going to work. Normally though, you could do the following (see POC here):
<script type="text/javascript">
var jsonString = '{"hashcode":[], "stringMap":{"id":"50","question":"My roof"}, "size":"2", "type":"java.util.HashMap", "typeId":"123"}';
var data = eval("(" + jsonString + ")");
alert(data.stringMap.id);
</script>
Note that in order for that code to work, I had to remove the ":" from before "id"...