2016-04-01 18 views
0

これは私が持っているものです:私はJSを(私は、サーバー側でこのデータを処理する必要があると私はNode.jsのは、単一のもののためのビットやり過ぎだと思う)を使用することはできません冗長データを削除しますか?

var places_info = [{"place_id":57,"name":"Place 1 ... }]; 

しかし、ソースはすべて台無しであり、それはJSフォーマットであり、私はこれを支配していません。

どのように私はすべての冗長データを削除することができ

..私は(json_decodeを使用して)PHPでこのデータを使用する必要があるが、それは適切なJSONでなければ、それはNULLを返しますか?var places_info =と端からsemicolon

+0

JSONが有効ではなく、有効なJSONが送信されていると言っています...うまくいけば、いくつかの単純な[文字列関数](http://php.net/manual/en/ref。 strings.php)....?ほとんどのプログラミング言語で同じように動作します。 – ficuscr

+0

ajaxとjson_decodeを使用してplace_infoデータを投稿する –

+0

@ficuscrこのデータを 'PHP'で使用する必要があります。つまり、' json_decode'を使用する必要がありますが、これは適切な 'JSON 'format(末尾に' var XX = 'と'セミコロン ')があります。私が知っている限り、' JS '構文をすべて削除すれば通常の 'JSON'となります。 – Solo

答えて

1

が私を壊した...私は使用から敬遠する傾向がありますpreg_は実際には必要ないときに機能します。習慣からereg暗い日。物事を丸くするために私がお勧めしたい:

<?php 
$dirty = 'var places_info = [{"place_id":57,"name":"Place 1"}];'; 
$clean = substr(substr($dirty, 18), 0, -1); 

var_dump(json_decode($clean)); 

substrは、あなたが知っておくべきものです。いくつかの文字列関数を使用すると、多くの多くのタスクを実行できます。

0

あなたがPHPに適切なJSONを送信できない場合、このパターンは、おそらくそれを行う必要があります。

preg_match('/\[.*\]/', $string, $match); 

print_r(json_decode($match[0], true)); 
関連する問題