将JSON响应的数据存储到多个变量中

时间:2018-04-30 14:21:05

标签: javascript jquery html model-view-controller laravel-5.5

我一直在获得与我需要的相同的json响应,但它是在数据响应中。我想将它存储在不同的变量中,以便我可以按照我需要的方式在javascript中使用它。

传递json数据的函数是:

 public function get_Ajax(Request $request)
    {
        $b_id = $request->input('b_id');

            $pays = Booking::find($b_id);
            foreach ($pays->payments as $pay) {
                $paymentss[] = $pay->payment;
                $p_dates[] = $pay->created_at->format('d-M-Y');
            }

        return response()->json([
            $paymentss,
            $p_dates
        ]);
    }

调用该函数的按钮是:

<button class="btn btn-block btn-primary " data-toggle="modal" data-href="#full-width" href="#full-width" onclick="showdetail({{$book->id}})" style="background-color: #224777">View Payments Schedule</button>

和获得响应的函数

function showdetail(b_id) {
$.get('/my-account/get_payments?b_id='+b_id, function(data){
alert(data)
});
}

请告诉我如何将数据拆分为两个变量。

2 个答案:

答案 0 :(得分:1)

您可以创建一个JSON对象。

例如:

$jsonObj= array('Payments' => $paymentss,
                'PaymentDates' => $p_dates);

将创建以下JSON:

{
    "Payments": payments,
    "PaymentDates": payDates
}

在响应函数中:

var payments = data.Payments;
var paymentDates = data.PaymentDates;

答案 1 :(得分:-1)

当你说&#34;以我需要的方式使用它时,&#34;你到底什么意思?你在改变数据吗?如果没有,那么您可以随心所欲地传递JSON对象,它会没事,除了

之外不需要做任何事情。
function showdetail(b_id) {
  $.get('/my-account/get_payments?b_id='+b_id, function(data){
    let var1 = data,
        var2 = data;
  });
}

如果您要以不同的方式编辑数据,复制JSON的最简单方法就是进行字符串化,然后再解析它

function showdetail(b_id) {
  $.get('/my-account/get_payments?b_id='+b_id, function(data){
    let var1 = JSON.parse(JSON.stringify(data)),
        var2 = JSON.parse(JSON.stringify(data));
  });
}