I have a python code which converts the normal dict into JSON as follows
groups = {
'g_1': [
{'name': 'something', 'id': '1'},
{'name': 'something', 'id': '1'}
],
'g_2': [
{'name': 'something', 'id': '1'},
{'name': 'something', 'id': '1'}
]
}
I have used json.dumps to convert that to a json as follows
import json
groups = json.dumps(groups)
I want to read the data in javascript as an object. How to I access it?
I tried var groups=JSON.parse({{ groups }}) it didn't work out.
Help me in parsing the data as javascript object.
This should work:
var groups = JSON.parse('{{ groups|safe }}');
try:
var groups = JSON && JSON.parse({{ groups }})|| $.parseJSON({{ groups }});
You may have troubles with ' character trying to run var groups = "{{ groups|safe }}"; or var groups = '{{ groups|safe }}';.
If both answers don't work try this solution:
function escapeRegExp(str) {
return str.replace(/([.*+?^=!:${}()|\[\]\/\\])/g, "\\$1");
}
function replaceAll(str, find, replace) {
return str.replace(new RegExp(escapeRegExp(find), 'g'), replace);
}
var str = "{{ groups|safe }}";
var new_str = replaceAll(str, "'", "\"");
var groups = JSON.parse(new_str);
I had to replace all ' to " in the dictionary for JSON.parse to work. To know more about these functions check Stack How to replace all occurrences of a string in JavaScript question.