Я знаю, что об этом спрашивали несколько раз, но, пожалуйста, потерпите меня.
У меня есть довольно сложный объект карт Google (он содержит различные узлы, координаты и т. Д.), И я пытаюсь передать его.это как строка запроса.
Мне нужно решение play javascript / jQuery.
Я пробовал метод .param, который выдает ошибку jQuery.Единственное, что работает, это метод "stringify", который затем создает строку, которая при отображении в виде URL выглядит примерно так:% 7B% 5C "shape_1% 5C"% 3A% 7B% 5C "цвет% 5C"% 3A% 5C "% 237F0000% 5C" % 2C% 5C% "данные 5C" % 3A% 7B% 5C "б% 5C" % 3A% 5B% 7B% 5C "На% 5C" % 3A51.56727431757122% 2C% 5C»Oa% 5C "% 3A-0.10462402858888709% 7D% 2C ....
php переводит это как: {\\" shape_1 \\ ": {\\" color \\ ": \\" # 7F0000\\», \\ "\\ данных": {\\ "\\ б": [{\\ "\\ Na": +51,56727431757122, \\ "\\ Оа": - +0,10462402858888709}, ...
но, сказав, что я не хочу использовать PHP, я просто показываю вам, что он делает, в случае, если он помогает вам увидеть, что stringify сделала с объектом.
После того, как я удалился с помощью Javascriptвыглядит немного более нормально, как:
{\ "shape_1 \": {\ "color \": \ "# 7F0000 \", \ "data \": {\ "b \": [{\ \"Na \": 51.56727431757122, \ "Oa \": - 0.10462402858888709}, ..
Таким образом, как вы можете видеть, последовательность без выхода имеет эти косые черты везде.Когда я пытаюсь преобразовать это в объект JSON, я получаю «Незаконный токен».Метод разбора также не работает.Я просто не могу найти способ поместить эту строку обратно в сложный объект JSON, которым она была.Я искал в Интернете различные предложения, но они терпят неудачу.Я также не понимаю, почему stringify вводит все эти слэши, которых просто не должно быть.Если у кого-то есть идея, как взять этот объект, поместить его в строку запроса и затем проанализировать его, я был бы очень признателен.
Ник
Обновление: ответ таков:
encodeURIComponent(JSON.stringify(myObject));
А затем на приемном конце:
var a = querySt("data");
var b = decodeURIComponent(a);
var c = unescape(b);
var d = JSON.parse(c);
или все в одной строке
JSON.parse(unescape(decodeURIComponent(querySt("data"))));
Ник