Проблема с отправкой на сервер кодирующих полилиний с json через ajax - PullRequest
1 голос
/ 20 января 2011

Я пытаюсь отправить закодированные полилинии карт Google на сервер с помощью ajax, чтобы сохранить их в базе данных.Я отправляю их через JSON и декодирую на стороне сервера.Проблема в том, что когда ломаная становится слишком длинной, функция json_decode () больше не будет декодировать строку json.Я делаю свой вызов ajax с постом, и я уже пробовал несколько вещей, таких как экранирование полилиний и т. Д., Но ничего не получится!

Рабочий пример JSON:

{"title":"a",
 "type":"custom",
 "POIS":["46","43"],
 "polylines":[{
    "points": "oot|H_bgd@rI{HjGkFz@_Ad@w@@eAxD~ClBpAxC`Ax@pAjAbCj@zA|@h@VqAr@wAdBeB|C}Bd@KfY}A",
    "levels": "PEFEFGEFFEEFGEFEFEP" 
 }]
}

Не работающий пример JSON:

{"title":"a",
 "type":"custom",
  "POIS":["46","43"],
  "polylines":[{
     "points": "uip|Hc|nd@v@GXoC`TwJV?VPvAhElAxF^bHtHd@zDd@Hj@]jf@KpC@v@F^VOx@HK`De@~EsAdHaEzPyDpMw\zaAqCvJo@tCmDjLyDtNkKvZmD`MmDfNuDnMuA~D_BpDiEhHcF|GxAzEfHhOORvChGjBrEJHnHxOzC~EtDzCpAnBdAzBpc@|hAjJvU`IxPbGdLn@|AJFb@rApAlHF|@fAjGF|AGvGDvCv@rGhA|Fr@fCjA`DfAbCHM`AOzAn@jBzEvBrEbCxCtAnAtAp@|InCf@Dz@Kn@BlDn@`@`@fApCfAqATOh@AxAvAHjA`@E`@L`@b@hGxI|EvF~CmMHInGfF|@bBdCjGvElKrBjGz@bD`@bBjAnGnAdLXjFJpCDtLSlIiBj`@g@tOCjLBdBLnDh@tE`@d@|A|FhA~Fl@pE~CtI`FbMX`@\LZ@`@WbEuFrD_HxBhBrDnBlGfCjFnAX\B`@Gb@sArEE|@g@zDe@`H@x@F\pAdFCv@QZn@lA",
     "levels": "PFFEGEEFFEGEEEFFEFEGEEFFEEEFEEEFEFEGEEFEEEFFFEFEFEEEFEEEFEEFFEFEGEFFEFEFEFEEEFEFEEFFFEEFEFEFFEEGEEEFEEFEFEFEFEGEFEFEEGEEFEGEFEEGEEFEEFEEFEFP" 
  }]
}

1 Ответ

1 голос
/ 12 апреля 2011

Вам необходимо экранировать определенные символы в свойстве points .

Быстрый просмотр вашей закодированной полилинии показывает, что у вас есть последовательность символов "DpMw\zaA" примерно на пятой части пути в строку.

Обратная косая черта должна быть экранирована обратной косой чертой. Так что это должно выглядеть как "DpMw\\zaA"

Вам также следует избегать двойных кавычек в JSON, поскольку свойство points создается с начальной и конечной двойными кавычками.

...