How do I turn a POSTed JSON value into PHP?

2019-09-10 15:42发布

问题:

As a test, this JSON data is being POSTed to my website:

{
    "order": {
        "id": null,
        "created_at": null,
        "status": "new",
        "total_btc": {
            "cents": 100000000,
            "currency_iso": "BTC"
        },
        "total_native": {
            "cents": 2263,
            "currency_iso": "USD"
        },
        "custom": "123456789",
        "button": {
            "type": "buy_now",
            "name": "Test Item",
            "description": null,
            "id": null
        },
        "transaction": {
            "hash": "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b",
            "confirmations": 0
        }
    }
}

Since it is being sent server-to-server I cannot visibly see the data. I have tried sending the $_POST array to a text file, but it comes up blank. What I think I need to do is:

$data = json_decode($jsonData);

But how do I set the variable $jsonData?

回答1:

You can try to use wrappers for reading raw POST query.

$data = file_get_contents("php://input");


回答2:

Have you tried this, store the sting obtained to a variable and then decoding it?

$postedJsonData= '{"order":{"id":null,"created_at":null,"status":"new","total_btc":
{"cents":100000000,"currency_iso":"BTC"},"total_native":
{"cents":2263,"currency_iso":"USD"},"custom":"123456789","button":
{"type":"buy_now","name":"Test Item","description":null,"id":null},"transaction":
{"hash":"4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b","confirmations":0}}}';

var_dump(json_decode($postedJsonData, true));

The true parameter would return an associative array



回答3:

$data = json_decode($jsonData, True);



标签: php json api post get