Php 获取Json的参数
我试图访问一个Json对象的参数,当Json中有一个数组时就会遇到麻烦Php 获取Json的参数,php,json,Php,Json,我试图访问一个Json对象的参数,当Json中有一个数组时就会遇到麻烦 Example: { "data":{ "data_type": "getUsername", "user":"bla" } } $data = file_get_contents('php://input'); $data_back = json_decode($data); $userName = $data_back->data->user; echo $u
Example:
{
"data":{
"data_type": "getUsername",
"user":"bla"
}
}
$data = file_get_contents('php://input');
$data_back = json_decode($data);
$userName = $data_back->data->user;
echo $userName;
这个很好用。但是如果有一个数组被使用,我会改变
$data_back = json_decode($data); to $data_back = json_decode($data,true);
我无法访问任何数据
Example:
{
"data":{
"data_type": "getUsername",
"user":[{
"username":"a",
"username":"b"
}]
}
}
如果可能有数组或没有数组,我应该使用哪种类型的
json\u decode()
?您正在覆盖json中的相同属性:
{
"data":{
"data_type": "getUsername",
"user":[{ // array containing 1 object
"username":"a", // with 2 properties with the same name
"username":"b"
}]
}
}
你想做的是:
{
"data":{
"data_type": "getUsername",
"user":[
{ "username":"a"} ,
{ "username":"b"}
]
}
}
然后您就可以访问它:
echo $data_back->data->user[0]->username; // a
echo $data_back->data->user[1]->username; // b
您不需要将true
传递给json\u decode
,因为您仍然可以将其作为对象访问。作为第二个参数,true和false之间的区别如下:
$json = '{"name":"Daniel"}';
$data1 = json_decode($json);
$data2 = json_decode($json, true);
var_dump($data1);
var_dump($data2);
// First one RETURNS an object:
object(stdClass)#1 (1) {
["name"]=>
string(6) "Daniel"
}
// Second one returns an ARRAY:
array(1) {
["name"]=>
string(6) "Daniel"
}
但是输入是相同的。您正在覆盖JSON中的相同属性:
{
"data":{
"data_type": "getUsername",
"user":[{ // array containing 1 object
"username":"a", // with 2 properties with the same name
"username":"b"
}]
}
}
你想做的是:
{
"data":{
"data_type": "getUsername",
"user":[
{ "username":"a"} ,
{ "username":"b"}
]
}
}
然后您就可以访问它:
echo $data_back->data->user[0]->username; // a
echo $data_back->data->user[1]->username; // b
您不需要将true
传递给json\u decode
,因为您仍然可以将其作为对象访问。作为第二个参数,true和false之间的区别如下:
$json = '{"name":"Daniel"}';
$data1 = json_decode($json);
$data2 = json_decode($json, true);
var_dump($data1);
var_dump($data2);
// First one RETURNS an object:
object(stdClass)#1 (1) {
["name"]=>
string(6) "Daniel"
}
// Second one returns an ARRAY:
array(1) {
["name"]=>
string(6) "Daniel"
}
但是输入是相同的。您正在覆盖JSON中的相同属性:
{
"data":{
"data_type": "getUsername",
"user":[{ // array containing 1 object
"username":"a", // with 2 properties with the same name
"username":"b"
}]
}
}
你想做的是:
{
"data":{
"data_type": "getUsername",
"user":[
{ "username":"a"} ,
{ "username":"b"}
]
}
}
然后您就可以访问它:
echo $data_back->data->user[0]->username; // a
echo $data_back->data->user[1]->username; // b
您不需要将true
传递给json\u decode
,因为您仍然可以将其作为对象访问。作为第二个参数,true和false之间的区别如下:
$json = '{"name":"Daniel"}';
$data1 = json_decode($json);
$data2 = json_decode($json, true);
var_dump($data1);
var_dump($data2);
// First one RETURNS an object:
object(stdClass)#1 (1) {
["name"]=>
string(6) "Daniel"
}
// Second one returns an ARRAY:
array(1) {
["name"]=>
string(6) "Daniel"
}
但是输入是相同的。您正在覆盖JSON中的相同属性:
{
"data":{
"data_type": "getUsername",
"user":[{ // array containing 1 object
"username":"a", // with 2 properties with the same name
"username":"b"
}]
}
}
你想做的是:
{
"data":{
"data_type": "getUsername",
"user":[
{ "username":"a"} ,
{ "username":"b"}
]
}
}
然后您就可以访问它:
echo $data_back->data->user[0]->username; // a
echo $data_back->data->user[1]->username; // b
您不需要将true
传递给json\u decode
,因为您仍然可以将其作为对象访问。作为第二个参数,true和false之间的区别如下:
$json = '{"name":"Daniel"}';
$data1 = json_decode($json);
$data2 = json_decode($json, true);
var_dump($data1);
var_dump($data2);
// First one RETURNS an object:
object(stdClass)#1 (1) {
["name"]=>
string(6) "Daniel"
}
// Second one returns an ARRAY:
array(1) {
["name"]=>
string(6) "Daniel"
}
但是输入是相同的。尝试
json\u解码($data,true)代码>我已经试过了。如何在Json数组中回显参数?print\u r
或var\u dump
应该这样做。您缺少user
上的索引。哦,是的,这更有意义。。。您创建了一个数组,其中包含一个具有相同密钥的json单元格!小心这些事情。试试json_解码($data,true)代码>我已经试过了。如何在Json数组中回显参数?print\u r
或var\u dump
应该这样做。您缺少user
上的索引。哦,是的,这更有意义。。。您创建了一个数组,其中包含一个具有相同密钥的json单元格!小心这些事情。试试json_解码($data,true)代码>我已经试过了。如何在Json数组中回显参数?print\u r
或var\u dump
应该这样做。您缺少user
上的索引。哦,是的,这更有意义。。。您创建了一个数组,其中包含一个具有相同密钥的json单元格!小心这些事情。试试json_解码($data,true)代码>我已经试过了。如何在Json数组中回显参数?print\u r
或var\u dump
应该这样做。您缺少user
上的索引。哦,是的,这更有意义。。。您创建了一个数组,其中包含一个具有相同密钥的json单元格!小心这些事情。没问题,你应该接受这个作为答案,然后没有问题,你应该接受这个作为答案,然后没有问题,你应该接受这个作为答案,然后没有问题,你应该接受这个作为答案