1

我正在尝试使用 ajax 将编码的谷歌地图折线发送到服务器,以将它们保存在数据库中。我通过 JSON 发送它们并在服务器端对其进行解码。问题是当折线变得太长时, json_decode() 函数将不再解码 json 字符串。我用 post 进行 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" 
  }]
}
4

1 回答 1

1

您需要转义点中的某些字符属性中的某些字符。

快速浏览您的编码折线显示您有字符序列"DpMw\zaA"大约在字符串中的五分之一处。

反斜杠应该用反斜杠转义。所以这应该看起来像"DpMw\\zaA"

您还应该在 JSON 中转义双引号,因为属性是用开始和结束双引号构成的。

于 2011-04-12T12:05:04.943 回答