Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Laravel/PHP中显式返回转义JSON响应与仅返回数组_Javascript_Php_Json_Laravel - Fatal编程技术网

Javascript 在Laravel/PHP中显式返回转义JSON响应与仅返回数组

Javascript 在Laravel/PHP中显式返回转义JSON响应与仅返回数组,javascript,php,json,laravel,Javascript,Php,Json,Laravel,如果我比较一下Laravel的和文档,5.3文档似乎鼓励只返回一个包含数据的数组,该数组将自动转换为JSON响应(内容类型为“application/JSON”)。我注意到,从控制器返回一个数组将返回未转换的JSON return ['country_id' => $countryId, 'iso2' => 'EG', 'iso3' => 'EGY', 'country_name' => $countryName, 'name' => 'EGYPT', 'activ

如果我比较一下Laravel的和文档,5.3文档似乎鼓励只返回一个包含数据的数组,该数组将自动转换为JSON响应(内容类型为“application/JSON”)。我注意到,从控制器返回一个数组将返回未转换的JSON

return ['country_id' => $countryId, 'iso2' => 'EG', 'iso3' => 'EGY', 'country_name' => $countryName, 'name' => 'EGYPT', 'active' => 1, 'published' => 1];
return response()->json(json_encode(['country_id' => $countryId, 'iso2' => 'EG', 'iso3' => 'EGY', 'country_name' => $countryName, 'name' => 'EGYPT', 'active' => 1, 'published' => 1]));
返回

[{"country_id":63,"iso2":"EG","iso3":"EGY","country_name":"Egypt","name":"EGYPT","active":1,"published":1}]
但是使用JSON\u encode()将PHP数组显式转换为JSON字符串,并将其作为响应返回,则返回转义的JSON

return ['country_id' => $countryId, 'iso2' => 'EG', 'iso3' => 'EGY', 'country_name' => $countryName, 'name' => 'EGYPT', 'active' => 1, 'published' => 1];
return response()->json(json_encode(['country_id' => $countryId, 'iso2' => 'EG', 'iso3' => 'EGY', 'country_name' => $countryName, 'name' => 'EGYPT', 'active' => 1, 'published' => 1]));
返回

[{\"country_id\":63,\"iso2\":\"EG\",\"iso3\":\"EGY\",\"country_name\":\"Egypt\",\"name\":\"EGYPT\",\"active\":1,\"published\":1}]
是否有任何理由使用更详细的返回方式(我在客户端没有使用eval,只使用JSON.parse()将未转义和转义的JSON转换为相同的javascript对象)?

有两点:

  • 根据文件
  • 框架将自动将数组转换为JSON响应

    比如:

  • 根据
  • json方法将自动将内容类型头设置为application/json,并使用json_encode PHP函数将给定数组转换为json

    比如:

    您在这两个方面都是正确的,但是您获得转义代码是因为您使用了两次
    json_encode()
    ,一次是因为
    response()->json()
    根据文档在内部使用该函数,另一次是在该函数的代码中显式使用的:
    response()->json(json_encode(…)
    ,卸下内部的
    json_encode
    以正常工作


    我已经测试了这两种样式,并且接收到的标题是相同的,所以我考虑使用显式<代码>响应()> jSOR()/<代码> VS,只要您使用一个实现该特性的版本,只需返回一个数组作为首选项。5.2及以下版本似乎不太适合。

    我对拉雷维尔了解不多,但对我来说,逃跑似乎不应该出现在那里。