我有一个Java程序,它将HTTP POST请求发送到PHP文件。我需要PHP脚本将JSON数据提取到某些变量,并使用这些变量(参数)调用PHP函数。请在下面找到PHP代码。
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$data = json_decode(file_get_contents("php://input"), true);
var_export($data);
}
else
{
var_export($_SERVER['REQUEST_METHOD']);
}
?>
用Java创建的JSON对象
JSONObject json = new JSONObject();
json.put("name", "Dash");
json.put("num", new Integer(100));
json.put("balance", new Double(1000.21));
请帮助我了解如何将JSON数组数据提取到变量以及如何进行调用。
答案 0 :(得分:0)
一旦你运行了json_decode(),$ data只是一个&#34;正常&#34; php数组用&#34;正常&#34; php值在其中。
所以,例如
/*
JSONObject json = new JSONObject();
json.put("name", "Dash");
json.put("num", new Integer(100));
json.put("balance", new Double(1000.21));
=>
*/
// $input = file_get_contents("php://input");
$input = '{"name":"Dash","num":100,"balance":1000.21}';
$data = json_decode($input, true);
$response = array(
'name_rev' => strrev($data['name']),
'num_mod_17' => $data['num'] % 17,
'balance_mul_2' => $data['balance'] * 2
);
echo json_encode($response, JSON_PRETTY_PRINT); // you might want to get rid off JSON_PRETTY_PRINT in production code
打印
{
"name_rev": "hsaD",
"num_mod_17": 15,
"balance_mul_2": 2000.42
}
另外两个提示:
Double()
的java balance
。 java double是64位IEEE 754浮点。并且你可能会达到精度限制的一个点(如果不是范围),请参阅What is the best data type to use for money in java app?