Что за формат строки?

Подскажите, что за формат и каким образом можно спарсить?

a["{"args":["9in","{\"c\": \"rgb(0,0,255)\", \"X-Successful\": true, \"f\": \"default\", \"i\": \"HPTZ5R56F093AC\", \"m\": \"il\", \"tipped_alot_recently\": false, \"is_mod\": false, \"tid\": 14255784, \"tipped_tons_recently\": false, \"tipped_recently\": true}"],"callback":null,"method":"onMsg"}"]

Похоже на JSON, но JSON.parse даёт ошибку, указывая на первый символ.


Ответы (1 шт):

Автор решения: NoSkill

Похоже это что-то сломанное. Потому, что без a[" и "] внутренняя часть это "кусок" JavaScript-a:

var x = {"args":["9in","{\"c\": \"rgb(0,0,255)\",\"X-Successful\": true, \"f\": \"default\", \"i\": \"HPTZ5R56F093AC\", \"m\": \"il\", \"tipped_alot_recently\": false, \"is_mod\": false, \"tid\": 14255784, \"tipped_tons_recently\": false, \"tipped_recently\": true}"],"callback":null,"method":"onMsg"};

console.log(x);

А внутри массива строка JavaScript-a, которая представляет собой валидный JSON. (Это не JSON, а именно строка JavaScript-a с экранированными кавычками).

var json = "{\"c\": \"rgb(0,0,255)\",\"X-Successful\": true, \"f\": \"default\", \"i\": \"HPTZ5R56F093AC\", \"m\": \"il\", \"tipped_alot_recently\": false, \"is_mod\": false, \"tid\": 14255784, \"tipped_tons_recently\": false, \"tipped_recently\": true}";

console.log(JSON.parse(json));

→ Ссылка