ブラウザのJavascript、iPhoneおよびAndroidアプリによって解析されるJSONデータを出力するPHPスクリプトがあります。
以前、PHPが配列データをJSONに変換すると、二重引用符で示されているように、すべての数値が文字列に変換されることがわかりました。したがって、たとえば、"id" : 1
になり"id" : "1"
ます。これは、JSONデータを受信するJavascript関数の一部を混乱させるように思われたため、数値が文字列に変換されないようにするために、PHPのJSONでこの正規表現を実行しました。
$JSONOutput = preg_replace('/"(-?\d+\.?\d*)"/', '$1', json_encode($JSONOutput));
ただし、これにはキーと値の両方から二重引用符を削除する効果もあるため、に1 : "first value"
なり"1" : "first value"
ます。JSONキーが文字列でない場合、データを受信するiPhoneアプリが文句を言うため、これが問題であることがわかります。
したがって、私がやりたいのは、JSONのすべての値が整数として保持されていることを確認することですが、すべてのキーは文字列になっています。上記の正規表現を値だけで実行する方法はありますか?または、同様の結果が得られる他のプロセスはありますか?