php - 如何通过 Postman 以 JSON 格式发送请求正文中的对象数组?

标签 php json laravel api postman

我想通过 postman 发送对象数组来测试我的 API 函数 当我以 JSON 格式将请求发送到函数,然后循环遍历数组以访问每个对象属性时,会出现以下错误: /image/cN3bY.jpg

这是我的要求: /image/yOjkr.jpg

我搜索了如何使用 postman 发送对象数组,发现我正在以正确的方式这样做 我选择了正文部分下的行,这样我就可以添加请求正文,并将其格式选择为 JSON,并将“Content-Type: application/json”添加到请求 header

我的API函数:

public function createRetailer(Request $request){
    $machines = $request->machineInfo;

    foreach($machines as $machine){
        $newMachine = new Machine;
        $newMachine->machine_no = $machine->machineNo;
        $newMachine->account_type = $machine->accountType;
        $newMachine->machine_type = $machine->machineType;
        $newMachine->retialer_id = $retailer->retailerId;
        $newMachine->save();
    }
}

我希望我可以将每个数组对象属性作为 PHP 对象访问,但通过使用 is_object() 函数测试它,我发现它不是一个对象:

public function createRetailer(Request $request){
    $machines = $request->machineInfo;

    foreach($machines as $machine){
        return response()->json(is_object($machine));
    }
}

我不知道问题是否出在我的请求中,或者是我在 Controller 函数中检索请求数据时可能会误解的问题

最佳答案

它要么是一个数组,在这种情况下,您可以调用

$object = (object) $machine;

或者它是一个字符串,又名 JSON,您可以调用

$object = json_decode($machine);

或者如果它是一个对象/数组使用

$machine['machineType'];

另外请添加 $machine var 的转储

编辑

尝试不使用 [] 发送请求,因为它们将被转换为其中包含对象的数组,相反,如果您删除 [] 并且只有 {},则它应该只是请求中的一个对象

"machineInfo" : {
    "machineNo" : "1123213",
    "accountType" : "Paid",
    //...rest here..
}

试试这个:

 public function createRetailer(Request $request){
    $machines = $request->machineInfo;

    foreach($machines as $machine){
        $object = (object) $machine;
        return response()->json(is_object($object));
    }
}

关于php - 如何通过 Postman 以 JSON 格式发送请求正文中的对象数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891172/

相关文章:

php - Android数组转mysql数据库?

php - MYSQL 时间戳在插入时为空

php - 如何仅为本地脚本打开 PHP 的 register_globals?

json - Zend2 Web 服务 Auth 和 zfcUser

javascript - 如何删除嵌套数组中存在名称属性未定义的 JSON 对象

php - 数组索引自动从 1 开始

php - 如何遍历mysql结果集

json - WebRequest 缓存 Windows Phone 7

javascript - 将字符串从 laravel Controller 转换为 javascript

Laravel homestead 没有映射我的代码文件夹