如何从 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 类型响应中获取值的主要内容,如果未能解决你的问题,请参考以下文章

如何解析来自同一字段的多类型值的 json 响应?

在 Laravel5 中调用未定义的方法 Illuminate\Http\Response::json()

如何从 Perl CGI 程序发送 JSON 响应?

如何从片段中的 JSON 响应中的对象获取数据

如何从android中的php关联数组解析JSON响应?

如何从 iOS 中的 JSON 响应中获取价值