1

JSONを渡したい:{"name":"jason","age":"20}PHPではPOST

RoRでは、params["name"]&を使用して2つの値を取得できますparams["age"]

しかし、PHPでそれらを取得する方法がわかりません。

を使用してJSON文字列を連想配列に「変換」できることは理解していますjson_decodeが、JSON文字列を取得する方法がわかりません。

私のPHPコードでは、次のようなものを試しました。

<?php
    $json_string = $_POST['params'];

    $json_object= json_decode($json_string);
    print_r($json_object);

    echo $json_object->name;
    echo " ";
    echo $json_object->age;
?>

次に、ターミナルを使用してPHPをテストしましたが、正しい結果が得られました。

curl -d 'params={"name":"jason", "age":"20"}' xxxx/test_json_decode.php

それは動作しますが、私が設定しなかったので、それは私には奇妙に思えます'Content-Type: application/json'

PHPでJSONを解析する正しい方法ですか?

4

1 に答える 1

2

content-typeは、jsonの応答を期待するように明示的に指示していない標準の.postを実行するjqueryなどの特定の場合にのみ役立ちます。json文字列は単なるテキストであり、content-typeは受信者への単なる手がかりです。ただし、image / jpegを使用してjson文字列を送信し、それをデコードしてネイティブ構造を再度取得することはできます。

json_decode()に渡すものが有効なJSON文字列である限り、送信元のmimeタイプに関係なく、ネイティブ構造にデコードされます。

于 2012-11-07T18:52:06.263 に答える