ruby - Why is JSON.parse only parsing the first and last keys in the hash? -


i receive array formatted this

{\"message\":\"{\\\"_id\\\":\\\"9e7a;10000000266_userscreensconfig\\\",\\\"userdefinedscreens\\\":[{\\\"id\\\":\\\"documents\\\"},{\\\"appleft\\\":\\\"patientinfo\\\",\\\"appletheader\\\":\\\"navigation\\\",\\\"applets\\\":[{\\\"datacol\\\":\\\"2\\\",\\\"datamaxsizex\\\":\\\"8\\\",\\\"datamaxsizey\\\":\\\"12\\\",\\\"dataminsizex\\\":\\\"4\\\",\\\"dataminsizey\\\":\\\"3\\\",\\\"datarow\\\":\\\"1\\\",\\\"datasizex\\\":\\\"8\\\",\\\"datasizey\\\":\\\"6\\\",\\\"id\\\":\\\"allergy_grid\\\",\\\"instanceid\\\":\\\"applet-1\\\",\\\"maximizescreen\\\":\\\"allergy-grid-full\\\",\\\"region\\\":\\\"applet-1\\\",\\\"showinudwselection\\\":true,\\\"title\\\":\\\"allergies\\\",\\\"viewtype\\\":\\\"expanded\\\"}],\\\"contentregionlayout\\\":\\\"gridster\\\",\\\"id\\\":\\\"user-defined-workspace-1\\\",\\\"userdefinedscreen\\\":true}],\\\"userscreensconfig\\\":{\\\"screens\\\":[{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"cover-sheet\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"cover-sheet\\\",\\\"title\\\":\\\"coversheet\\\"},{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"news-feed\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"news-feed\\\",\\\"title\\\":\\\"timeline\\\"},{\\\"defaultscreen\\\":true,\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"overview\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"overview\\\",\\\"title\\\":\\\"overview\\\"},{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"medication-review\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"medication-review\\\",\\\"title\\\":\\\"meds review\\\"},{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"documents\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"documents-list\\\",\\\"title\\\":\\\"documents\\\"},{\\\"author\\\":\\\"panorama user\\\",\\\"defaultscreen\\\":false,\\\"filename\\\":\\\"newuserscreen\\\",\\\"id\\\":\\\"user-defined-workspace-1\\\",\\\"routename\\\":\\\"user-defined-workspace-1\\\",\\\"title\\\":\\\"user defined workspace 1\\\"}]},\\\"userdefinedfilters\\\":[{\\\"id\\\":\\\"user-defined-workspace-1\\\",\\\"applets\\\":[{\\\"instanceid\\\":\\\"applet-1\\\",\\\"filters\\\":[\\\"chocolate\\\"]}]}]}\",\"status\":200} 

i send through json.parse , receive this

{\"message\"=>\"{\\\"_id\\\":\\\"9e7a;10000000266_userscreensconfig\\\",\\\"userdefinedscreens\\\":[{\\\"id\\\":\\\"documents\\\"},{\\\"appleft\\\":\\\"patientinfo\\\",\\\"appletheader\\\":\\\"navigation\\\",\\\"applets\\\":[{\\\"datacol\\\":\\\"2\\\",\\\"datamaxsizex\\\":\\\"8\\\",\\\"datamaxsizey\\\":\\\"12\\\",\\\"dataminsizex\\\":\\\"4\\\",\\\"dataminsizey\\\":\\\"3\\\",\\\"datarow\\\":\\\"1\\\",\\\"datasizex\\\":\\\"8\\\",\\\"datasizey\\\":\\\"6\\\",\\\"id\\\":\\\"allergy_grid\\\",\\\"instanceid\\\":\\\"applet-1\\\",\\\"maximizescreen\\\":\\\"allergy-grid-full\\\",\\\"region\\\":\\\"applet-1\\\",\\\"showinudwselection\\\":true,\\\"title\\\":\\\"allergies\\\",\\\"viewtype\\\":\\\"expanded\\\"}],\\\"contentregionlayout\\\":\\\"gridster\\\",\\\"id\\\":\\\"user-defined-workspace-1\\\",\\\"userdefinedscreen\\\":true}],\\\"userscreensconfig\\\":{\\\"screens\\\":[{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"cover-sheet\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"cover-sheet\\\",\\\"title\\\":\\\"coversheet\\\"},{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"news-feed\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"news-feed\\\",\\\"title\\\":\\\"timeline\\\"},{\\\"defaultscreen\\\":true,\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"overview\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"overview\\\",\\\"title\\\":\\\"overview\\\"},{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"medication-review\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"medication-review\\\",\\\"title\\\":\\\"meds review\\\"},{\\\"description\\\":\\\"\\\",\\\"id\\\":\\\"documents\\\",\\\"predefined\\\":true,\\\"routename\\\":\\\"documents-list\\\",\\\"title\\\":\\\"documents\\\"},{\\\"author\\\":\\\"panorama user\\\",\\\"defaultscreen\\\":false,\\\"filename\\\":\\\"newuserscreen\\\",\\\"id\\\":\\\"user-defined-workspace-1\\\",\\\"routename\\\":\\\"user-defined-workspace-1\\\",\\\"title\\\":\\\"user defined workspace 1\\\"}]},\\\"userdefinedfilters\\\":[{\\\"id\\\":\\\"user-defined-workspace-1\\\",\\\"applets\\\":[{\\\"instanceid\\\":\\\"applet-1\\\",\\\"filters\\\":[\\\"chocolate\\\"]}]}]}\", \"status\"=>200} 

only first , last keys seem formatted. rest of semi-colons kept ":" instead of being converted "=>". why happening?

jkeuhlen's comment correct believe. sure response formatted way typed it? when call json.parse on array hash get

{"message"=>"{\"_id\":\"9e7a;10000000266_userscreensconfig\",\"userdefinedscreens\":[{\"id\":\"documents\"},{\"appleft\":\"patientinfo\",\"appletheader\":\"navigation\",\"applets\":[{\"datacol\":\"2\",\"datamaxsizex\":\"8\",\"datamaxsizey\":\"12\",\"dataminsizex\":\"4\",\"dataminsizey\":\"3\",\"datarow\":\"1\",\"datasizex\":\"8\",\"datasizey\":\"6\",\"id\":\"allergy_grid\",\"instanceid\":\"applet-1\",\"maximizescreen\":\"allergy-grid-full\",\"region\":\"applet-1\",\"showinudwselection\":true,\"title\":\"allergies\",\"viewtype\":\"expanded\"}],\"contentregionlayout\":\"gridster\",\"id\":\"user-defined-workspace-1\",\"userdefinedscreen\":true}],\"userscreensconfig\":{\"screens\":[{\"description\":\"\",\"id\":\"cover-sheet\",\"predefined\":true,\"routename\":\"cover-sheet\",\"title\":\"coversheet\"},{\"description\":\"\",\"id\":\"news-feed\",\"predefined\":true,\"routename\":\"news-feed\",\"title\":\"timeline\"},{\"defaultscreen\":true,\"description\":\"\",\"id\":\"overview\",\"predefined\":true,\"routename\":\"overview\",\"title\":\"overview\"},{\"description\":\"\",\"id\":\"medication-review\",\"predefined\":true,\"routename\":\"medication-review\",\"title\":\"meds review\"},{\"description\":\"\",\"id\":\"documents\",\"predefined\":true,\"routename\":\"documents-list\",\"title\":\"documents\"},{\"author\":\"panorama user\",\"defaultscreen\":false,\"filename\":\"newuserscreen\",\"id\":\"user-defined-workspace-1\",\"routename\":\"user-defined-workspace-1\",\"title\":\"user defined workspace 1\"}]},\"userdefinedfilters\":[{\"id\":\"user-defined-workspace-1\",\"applets\":[{\"instanceid\":\"applet-1\",\"filters\":[\"chocolate\"]}]}]}", "status"=>200}  

notice slashes gone, first json.parse parsing inner value mapped "message" string, can parsed form wanted it.

this should convert rest of inner hash pointed "message"

 x = json.parse(yourarray)  json.parse(x["message"])  

Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -

Nuget pack csproj using nuspec -