在php中创建JSON对象(带数组)
我试图创建包含数组的JSON对象。我想通过AJAX获取JSON,最初:在php中创建JSON对象(带数组),php,json,Php,Json,我试图创建包含数组的JSON对象。我想通过AJAX获取JSON,最初: $.ajax({ url: 'data/events.json', type: 'GET', }) 但我把这个改成 $.ajax({ url: 'data/events.php', type: 'GET', }) 我需要的JSON如下所示: { "events": [ { "month": "6", "day": "12", "year": "2016",
$.ajax({
url: 'data/events.json',
type: 'GET',
})
但我把这个改成
$.ajax({
url: 'data/events.php',
type: 'GET',
})
我需要的JSON如下所示:
{
"events": [
{
"month": "6",
"day": "12",
"year": "2016",
"title": "Lorem ipsum",
"description": "desc..."
},
{
"month": "6",
"day": "9",
"year": "2016",
"title": "Lorem ipsum",
"description": "desc..."
}
]
}
我试过:
$events = array(
"events" => array(
array(
"month"=> "6",
"day"=> "12",
"year"=> "2016",
"title"=> "Lorem ipsum",
"description"=> "desc.."
),
array(
"month"=> "6",
"day"=> "9",
"year"=> "2016",
"title"=> "Lorem ipsum",
"description"=> "desc..."
)
)
);
echo json_encode($events);
但这是行不通的。提前谢谢你 我认为您的数组还可以,但在ajax中,请尝试: 数据类型:“json”:这将把您的响应转换为json对象
我认为您的阵列还可以,但在ajax中,请尝试: 数据类型:“json”:这将把您的响应转换为json对象
由于接受的答案没有解释,我将提供一些信息。在最初的示例中,您有一个静态的
.json
文件,当Web服务器提供该文件时,它将自动显示应用程序/json
内容类型。但是,在php示例中,Web服务器将不提供JSON内容类型
如果jQuery检测到JSON内容类型,它将自动解析响应JSON。这就是为什么您的php示例与原始示例不完全相同,即使JSON内容本身是相同的
正如Neeraj所建议的,您可以通过设置dataType
来强制内容类型。或者,您可以在php中发送JSON头,它将复制您的原始示例。设置相关的内容类型是一种很好的做法,因此我建议即使您正在设置数据类型
,也要这样做
header('Content-Type: application/json');
echo json_encode($events);
由于接受的答案没有解释,我将提供一些信息。在最初的示例中,您有一个静态的
.json
文件,当Web服务器提供该文件时,它将自动显示应用程序/json
内容类型。但是,在php示例中,Web服务器将不提供JSON内容类型
如果jQuery检测到JSON内容类型,它将自动解析响应JSON。这就是为什么您的php示例与原始示例不完全相同,即使JSON内容本身是相同的
正如Neeraj所建议的,您可以通过设置dataType
来强制内容类型。或者,您可以在php中发送JSON头,它将复制您的原始示例。设置相关的内容类型是一种很好的做法,因此我建议即使您正在设置数据类型
,也要这样做
header('Content-Type: application/json');
echo json_encode($events);
在ajax中得到的响应是什么?除非我遗漏了什么,否则代码会给出JSON…?在ajax中得到的响应是什么?除非我遗漏了什么,否则代码会给出JSON…?这是个问题。谢谢这是个问题。谢谢