PHPとJavaScriptのAjax呼び出しの間を行き来するJSON文字列に問題があります。 PHPのルーチンは、すなわち浮動小数点数の二重引用符での置換
{"Route_1":[{"lat":-31.526107395574975,"lng":146.31591796875},{"lat":-31.51674215813217,"lng":145.5303955078125}]}}
、浮動小数点数の前後に引用符なしでJSONエンコードされた文字列を送信している。しかし、JSON文字列がAjaxのルーチンによって受信されたときに、ここで示したように、すべての浮動小数点数は、それらの周りに二重引用符を持っています:
{"Route_1":[{"lat":"-31.526107395574975","lng":"146.31591796875"},{"lat":"-31.51674215813217","lng":"145.5303955078125"}]}
だからの底に取得しようとして数日後、私は最善の行動は、単に二重引用符を削除するには、これを解析することであることを決定しました。私は浮動小数点数を特定し、.replace and callbackを使用することができます。私はそれが期待されているように、化合物の置換は機能していません - それは同じ文字列を返すだけです。
誰でもこの光を当てることができますか?ところでこれはあなたが正規表現で同様"
を一致させる必要があるだろうhow to parse a JSON string.
var str = '{"Route_1":[{"lat":"-31.526107395574975","lng":"146.31591796875"},{"lat":"-31.51674215813217","lng":"145.5303955078125"}]}'
var regex = /[-+]?[0-9]*\.?[0-9]+/g;
var t = str.replace(regex, function(x) {
return x.replace(/"/g, "");
})
console.log(t);
あなたがオブジェクトに変換し、操作することができ、完全servicable JSONを持っているのに、なぜあなたは正規表現を使うのでしょうか? – vlaz
実際には有効なJSONではないようですが。しかし、私の言いたいことは、JSONを使ってやりたいことです。有効なものがあれば、それを正規表現する必要はありません。 – vlaz
[JSONArrayを解析してJavaScriptで変換する方法]の可能な複製(http://stackoverflow.com/questions/39398091/how-to-parse-a-jsonarray-and-convert-in-javascript) – vlaz