首页 > 解决方案 > json响应与laravel中给出的sample参数不一样

问题描述

我正在与供应商公司合作一个项目,他们提供 API,我必须将值发布到他们的 API。我的代码运行良好,但我发现我的 JSON 参数之一与其给定的示例参数不同。这是我的“选项”参数,我之前尝试使用邮递员发布它,但出现错误(失败结果):

"options":[{"name":"city","value":["1","200"]},{"name":"fs3","value":["1"]},{"name":"fs4","value":["2"]}]

这是他们的样本:

"options": "[{'name':'city', 'value': '2'}, {'name':'fs3', 'value': '3'}, {'name':'fs4', 'value': '2'}]"

这就是我在控制器中为获取 json 结果所做的操作:

      $loc = $request->location;
      $price = $request->price;
      $type = $request->type;
      //$i = 0;
      if ($loc == true && $price == true && $type == true) {
         $loc_opt = [
           'name' => 'city',
           'value' => $loc
         ];

         $price_opt = [
           'name' => 'fs3',
           'value' => $price
         ];

         $type_opt = [
           'name' => 'fs4',
           'value' => $type
         ];
      }
      $all_opt = [$loc_opt,$price_opt,$type_opt];

      $data = [
        'orgname'=>"expo",
        'username'=>'expoapileadcreation@propertyguru.com.sg',
        'password'=>'926db4ec868b7a099952c1f36daf8f3cdef83164f7556b30919ab3ad720845ab',
        'sourceid'=>'1001',
        'projectid'=>'1',
        'buyeremail'=>$request->email,
        'recipientEmail'=>'expo@smartleadtrack.com',
        'buyername'=>$request->name,
        'buyerphone'=>$request->phone,
        'option'=>$all_opt
      ];
      return $data;

我想知道数据库中的数据类型是否会影响结果,但仅供参考,请求的值使用的是 VARCHAR 数据类型。这是我第一次使用 API,所以我想知道我是否遗漏了什么?

标签: arraysjsonlaravel

解决方案


推荐阅读