В данном конкретном случае, вы можете просто заменить каждый u'x'
с "x"
и вы будете иметь действительный JSON:
var a = "{u'a':[u'123',u'321'], u'b':[u'456',u'654']}";
// Convert to JSON (May not work with other inputs!)
var json = a.replace(/u'((?:[^'\\]|\\.)*)'/g, function(a,str){
return '"' + str.replace(/\\'/g, '\'').replace(/"/g, '\\"') + '"';
});
// Parse the JSON into a Javascript object
var obj = JSON.parse(json);
Изменено для работы с некоторыми котировками в объекте:
var a = "{u'a':[u'\\'123\\'',u'321'], u'b':[u'456\\\\',u'\"654\"']}";
становится:
{a:["'123'","321"], b:["456\",""654""]}
Разве это не очевидно? Что это за 'u' перед одинарными кавычками? 'u'a'',' u'b'' и т. д.? 'a =" {'a': ['123', '321'], 'b': ['456', '654']} ";' –
Что такое u? Переменная ? – Dilantha
@ Dilantha: Это префикс для [литерала '' юникода '' Python '' (http://docs.python.org/2/howto/unicode.html). –