如何从 Laravel5 中的 json 类型响应中获取值
Posted
技术标签:
【中文标题】如何从 Laravel5 中的 json 类型响应中获取值【英文标题】:How to get value from json type response in Laravel5 【发布时间】:2015-06-27 07:54:48 【问题描述】:这是一个函数返回:
return response()->json(['aa'=>'bbb']);
我打印函数响应,结果如下:
JsonResponse #186
#jsonOptions: 0
#data: ""aa":"bbb""
#callback: null
#encodingOptions: 15
+headers: ResponseHeaderBag #187
#computedCacheControl: array:1 [
"no-cache" => true
]
我以前从未见过它,我如何获得bbb
的值?谢谢
【问题讨论】:
json是一个函数返回,我想在控制器中获取json,而不是在js脚本中 正常情况下,函数返回是这样的 return json_encode(['aa'=>'bbb']);而且,我得到这样的值 bbb : $result = json_decode($function_return); $结果['aa']。但它在上面不起作用 如果你只想要json字符串使用json_encode(...)
我试过 json_encode($function_return)。结果为空
否,而不是 response()->json(['aa' => 'bbb'])
使用 json_encode(['aa' => 'bbb'])
。 response()
是如果您想向浏览器发送 HTTP 响应。
【参考方案1】:
除了官月说的:
$a = response()->json(['aa'=>'bbb'])->getData();
dd($a->aa);
它的工作!
【讨论】:
【参考方案2】:我已经解决了这个问题,使用getData()
可以读取json。
$a = response()->json(['aa'=>'bbb']);
$a->getData()->aa;
【讨论】:
你是我的英雄。【参考方案3】:您看到的是response()->json()
生成的对象。这实际上不是客户会得到的。因为 Laravel 会先把它转成字符串再发回去。
在客户端上,您可以将其用作 JSON。这是一个使用 jQuery ajax 的示例:
$.ajax(
url: '/your/route'
).done(function(data)
alert(data.aa); // alerts bbb
);
【讨论】:
我只是想将值作为函数结果。以上是关于如何从 Laravel5 中的 json 类型响应中获取值的主要内容,如果未能解决你的问题,请参考以下文章