3

次のような単純なキーと値の配列であるPHPソースコードがいくつかあります。

return array('var1' => 'var2' );

return array('sub' => array( 'var1' => 'var2' ) );

PHP ライブラリの JavaScript 実装があり、元のテスト ケースを使用して互換性をテストしたいので、それらを JavaScript オブジェクトに解析する必要があります。

100 以上のテストがあるため、手動での変換は実用的ではありません。

PHP を使用せずにこれらを JavaScript オブジェクトに変換する簡単な方法はありますか?

4

4 に答える 4

4

PHP を使用せずに PHP の連想配列を JSON に解析する方法についての質問に実際に答えるために、いくつかの JavaScript コードを使用してみましょう。

"array('sub' => array( 'var1' => 'var2' ) );".replace(/array\(/g, '{').replace(/\)/g, '}').replace(/=>/g, ':').replace(/;/g, '').replace(/'/g, '"');

これは、たまたまあるソース コードを使用して、それをNode.jsアプリケーションにコピーしたいと考えており、すべてのデータがこのようになっていることを前提としています。データがたまたま複数の行にある場合、「return」/「;」を解析したい場合でも 一部のデータにインデックス付き配列が含まれている場合、または値のいずれかに単純に解析しただけの文字列が含まれている場合は、このスクリプトをもう少し賢くする必要があります。

他の人が言ったように、PHP サービスと対話している場合は、json_encode().

于 2013-04-20T09:34:20.467 に答える
2

これはうまくいくはずです!

<?# somefile.php ?>
<script type="text/javascript">
    var json = '<?= json_encode(array('sub' => array( 'var1' => 'var2' ))) ?>';
    var object = JSON.parse(json);
    console.log(object);
</script>

出力

{
  sub: {
    var1: "var2"
  }
}

より一般的には、単に JSON 応答を提供する、言語に依存しない API が表示されます。JavaScript から API への非同期リクエストを使用して (ブラウザ内、Node.js経由など)、これを簡単にテストできます。

于 2013-04-20T09:08:11.743 に答える