【问题标题】:How to get value from json type response in Laravel5如何从 Laravel5 中的 json 类型响应中获取值
【发布时间】: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 响应。

标签: php json laravel


【解决方案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
    });
    

    【讨论】:

    • 我只是想将值作为函数结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多