在 json 响应 laravel 5.6.12 中发送模型对象时出现问题
Issue with sending model object in json response laravel 5.6.12
Laravel 5.6.12
我正在尝试获取数据库模型
$data = \App\Data::all();
return response()->json(
["data" => $data]);
并将其发送到 JavaScript 从那里了解到 Documentation
现在我想从模型对象中获取特定数据。我在 JavaScript(jQuery) ajax 收到了它。成功后我收到了。但是我必须使用 JSON.Stringify() 将其转换为字符串,当我尝试显示它时给我这个数据
{"data":[{"id":1,"name":"Ibrahim","fatherName":"Ahmed","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"},{"id":2,"name":"Haris","fatherName":"Shabir","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"}]}
我只需要知道什么类型的数据格式 return response()->json() 以及为什么我需要它来将它转换为字符串以及我如何访问唯一的所有详细名称。数据库模型中有两行,可以有更多。
我将输出格式放在 fiddle 上以访问所有名称 fiddle
Ajax
function ajax(event) {
var x = "";
event.preventDefault();
$.ajax({
type: "POST",
url: " {{ route('ajax') }}",
data: {_token: "{{ Session::token() }}"},
dataType: 'JSON',
success : function (data) {
if (data)
{
data2 = JSON.stringify(data);
$("#demo").html(data2); // this give above whole output
}
},
error: function (xhr,ajaxOp,errors) {
$("#demo").html(errors);
}
});
}
这是ajax
如果要获取所有用户,则需要遍历数组;
例如
var data = {"data":[{"id":1,"name":"Ibrahim","fatherName":"Ahmed","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"},{"id":2,"name":"Haris","fatherName":"Shabir","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"}]};
var users = "";
for(i = 0; i < data.data.length; i++) {
users += data.data[i].name + "<br>";
}
document.getElementById("done").innerHTML = users;
使用你的例子你可以试试;
<script>
function ajax(event) {
var x = "";
event.preventDefault();
$.ajax({
type: "POST",
url: " {{ route('ajax') }}",
data: {_token: "{{ Session::token() }}"},
dataType: 'JSON',
success : function (data) {
if (data)
{
var users = '';
for(i = 0; i < data.data.length; i++) {
users += data.data[i].name + "<br>";
}
$("#demo").html(users); // this give above whole output
}
},
error: function (xhr,ajaxOp,errors) {
$("#demo").html(errors);
}
});
}
</script>
您不需要对数据进行字符串化。
Laravel 5.6.12
我正在尝试获取数据库模型
$data = \App\Data::all();
return response()->json(
["data" => $data]);
并将其发送到 JavaScript 从那里了解到 Documentation
现在我想从模型对象中获取特定数据。我在 JavaScript(jQuery) ajax 收到了它。成功后我收到了。但是我必须使用 JSON.Stringify() 将其转换为字符串,当我尝试显示它时给我这个数据
{"data":[{"id":1,"name":"Ibrahim","fatherName":"Ahmed","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"},{"id":2,"name":"Haris","fatherName":"Shabir","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"}]}
我只需要知道什么类型的数据格式 return response()->json() 以及为什么我需要它来将它转换为字符串以及我如何访问唯一的所有详细名称。数据库模型中有两行,可以有更多。 我将输出格式放在 fiddle 上以访问所有名称 fiddle
Ajax
function ajax(event) {
var x = "";
event.preventDefault();
$.ajax({
type: "POST",
url: " {{ route('ajax') }}",
data: {_token: "{{ Session::token() }}"},
dataType: 'JSON',
success : function (data) {
if (data)
{
data2 = JSON.stringify(data);
$("#demo").html(data2); // this give above whole output
}
},
error: function (xhr,ajaxOp,errors) {
$("#demo").html(errors);
}
});
}
这是ajax
如果要获取所有用户,则需要遍历数组;
例如
var data = {"data":[{"id":1,"name":"Ibrahim","fatherName":"Ahmed","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"},{"id":2,"name":"Haris","fatherName":"Shabir","created_at":"2018-04-05 04:02:31","updated_at":"2018-04-05 04:02:31"}]};
var users = "";
for(i = 0; i < data.data.length; i++) {
users += data.data[i].name + "<br>";
}
document.getElementById("done").innerHTML = users;
使用你的例子你可以试试;
<script>
function ajax(event) {
var x = "";
event.preventDefault();
$.ajax({
type: "POST",
url: " {{ route('ajax') }}",
data: {_token: "{{ Session::token() }}"},
dataType: 'JSON',
success : function (data) {
if (data)
{
var users = '';
for(i = 0; i < data.data.length; i++) {
users += data.data[i].name + "<br>";
}
$("#demo").html(users); // this give above whole output
}
},
error: function (xhr,ajaxOp,errors) {
$("#demo").html(errors);
}
});
}
</script>
您不需要对数据进行字符串化。