JSON,嵌套数组,PHP中没有方括号

StackOverflow上有很多问题与我的问题很接近,但是没有一个人能完全回答。

为了在Android应用中测试POST请求,我找到了一个使用以下测试API的示例:

https://reqres.in/api/users/2

此API返回

{"data":{"id":2,"email":"janet.weaver@reqres.in","first_name":"Janet","last_name":"Weaver","avatar":"some url"}}

(注意:我将URL的图像更改为“某些URL”,以防它与StackOverflow上的规则冲突)。

我的问题是: 如何使PHP给我完全相同的输出?

通常,我使用这样的内容:

$result=array();
$result[]['id']=2/1; //0
$result[]['email']="janet.weaver@reqres.in"; //1
$result[]['first_name']="Janet"; //2
$result[]['last_name']="Weaver"; //3
$result[]['avatar']="some url"; //4
$data["result"]=$result;
echo json_encode($data);

但是这会在输出中放置一些方括号。因此:如何在自己的PHP脚本中模仿URL的输出?

希望能从经验丰​​富的人那里得到一些意见!

阿尔伯特

laoshu8688 回答:JSON,嵌套数组,PHP中没有方括号

您正在使用$result[]['id']=2/1;构建嵌套数组。每个调用都将一个带有单个元素的新关联数组添加到$result列表数组。

PHP将两件事编码为JSON对象-关联数组和对象。使用数组的时间较短,但是使用对象可以帮助更好地理解数组。因此,首先使用stdClass的示例:

$json = new stdClass();
$json->data = $data = new stdClass();
$data->id = 2;
$data->email = "janet.weaver@reqres.in";
$data->first_name = "Janet";
$data->last_name = "Weaver";
$data->avatar= "some url";

echo json_encode($json,JSON_PRETTY_PRINT);

对象是PHP中的引用。因此,更改将影响引用的所有变量。数组不是这种情况。但这可以只用一个表达式来完成:

$json = [
    'data' => [
        'id' => 2/1,'email' => "janet.weaver@reqres.in",'first_name' => "Janet",'last_name' => "Weaver",'avatar' => "some url"
    ]
];

echo json_encode($json,JSON_PRETTY_PRINT);
,

希望此示例对您有所帮助,以下示例具有您期望的所有组合。

<?php
     $name = "Your Name";
        $yearsofexp = "Years";
        $designation = "Your designnation";


        $pro_summary->name = $name;
        $pro_summary->yearsofexp = $yearsofexp;
        $pro_summary->designation = $designation;

        $topics->tech1 = "Android";
        $topics->tech2 = "Java";
        $topics->tech3 ="PHP";

        $past_exp[]=array("comp"=> "company One","role"=> "techlead","dates"=>"2015-2019","main_resp"=>"coding,testing,debugging","logo"=>"some.png");
        $past_exp[]=array("comp"=> "company 2","role"=> "senior software engineer","dates"=>"2014-2015","logo"=>"some2.png");
        $past_exp[]=array("comp"=> "company 3","role"=> "senior software developer","dates"=>"2013-2014","logo"=>"some3.png");
        $past_exp[]=array("comp"=> "company 4","role"=> "software developer","dates"=>"2010-2013","logo"=>"some4.png");

        //$past_exp[] = array("px1" =>$past_exp[1],"px2" =>$past_exp[2],"px3" =>$past_exp[3],"px4" => $past_exp[4] );

        $uni[] = array("education"=>"Degree 1","university"=>"University 1","logo" =>"uni1.png");
        $uni[] = array("education"=>"Degree 2","university"=>"University 2","logo"=>"uni2.png");



        $my_cv->Professional = $pro_summary;
        $my_cv->Technology = $topics;
        $my_cv->PastExperience = $past_exp;
        $my_cv->Education = $uni;




        echo json_encode($my_cv);
?>
本文链接:https://www.f2er.com/3089817.html

大家都在问