将 JSON 个对象解析为 post
Parsing JSON objects to post
我正在学习构建一个简单的 API,我有以下代码创建以下内容 json:
代码:
$sql = "SELECT * FROM posts WHERE `user_id` = '$user_id' AND post_date > CURDATE() - INTERVAL 2 YEAR ORDER BY post_date DESC ";
$result = $dbc->query($sql);
$rows = array();
while ($row = mysqli_fetch_array($result))
{
$rows["posts"][$row['post_date']] = $row['post_content'];
}
echo json_encode($rows);
JSON 创建:
{"posts":{"2015-03-03":"33","2014-03-03":"33 33"}}
我该如何解析这个?我知道以下代码是一个好的开始,但还没有成功:
$.ajax({
url : "http://localhost:8888/290_project/api_write.php",
dataType: 'json',
type: 'get',
cache: false,
success : function(data){
}
});
也许我应该在这个 w3 学校示例中做一些类似的事情?
var text = '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.employees[1].firstName + " " + obj.employees[1].lastName;
虽然到目前为止我还没有运气,但我知道我已经很接近了!
为了有一个更清晰的交互界面,您可以考虑将脚本更改为 return 更易于使用的数据形式:
while ($row = mysqli_fetch_array($result))
{
$post = array();
$post['date'] = $row['post_date'];
$post['content'] = $row['post_content'];
$rows["posts"][] = $post;
}
在您的成功函数中,您可以访问作为 javascript 对象的数据
success : function(data){
alert(data.posts[0].date);
alert(data.posts[0].content);
}
您可以在此处以任何您喜欢的方式操作这些数据,而无需对其进行解析。
我认为 $.parseJSON
是您的解决方案。您可以在成功活动中这样做:
$.ajax({
url : "http://localhost:8888/290_project/api_write.php",
dataType: 'json',
type: 'get',
cache: false,
success : function(data){
var data = $.parseJSON(data);
console.log(data);
}
});
如果你使用
实际上你甚至不需要解析它
$.getJSON('http://localhost:8888/290_project/api_write.php', function(alreadyParsedJsonData) {
// do stuff
});
我正在学习构建一个简单的 API,我有以下代码创建以下内容 json:
代码:
$sql = "SELECT * FROM posts WHERE `user_id` = '$user_id' AND post_date > CURDATE() - INTERVAL 2 YEAR ORDER BY post_date DESC ";
$result = $dbc->query($sql);
$rows = array();
while ($row = mysqli_fetch_array($result))
{
$rows["posts"][$row['post_date']] = $row['post_content'];
}
echo json_encode($rows);
JSON 创建:
{"posts":{"2015-03-03":"33","2014-03-03":"33 33"}}
我该如何解析这个?我知道以下代码是一个好的开始,但还没有成功:
$.ajax({
url : "http://localhost:8888/290_project/api_write.php",
dataType: 'json',
type: 'get',
cache: false,
success : function(data){
}
});
也许我应该在这个 w3 学校示例中做一些类似的事情?
var text = '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';
obj = JSON.parse(text);
document.getElementById("demo").innerHTML =
obj.employees[1].firstName + " " + obj.employees[1].lastName;
虽然到目前为止我还没有运气,但我知道我已经很接近了!
为了有一个更清晰的交互界面,您可以考虑将脚本更改为 return 更易于使用的数据形式:
while ($row = mysqli_fetch_array($result))
{
$post = array();
$post['date'] = $row['post_date'];
$post['content'] = $row['post_content'];
$rows["posts"][] = $post;
}
在您的成功函数中,您可以访问作为 javascript 对象的数据
success : function(data){
alert(data.posts[0].date);
alert(data.posts[0].content);
}
您可以在此处以任何您喜欢的方式操作这些数据,而无需对其进行解析。
我认为 $.parseJSON
是您的解决方案。您可以在成功活动中这样做:
$.ajax({
url : "http://localhost:8888/290_project/api_write.php",
dataType: 'json',
type: 'get',
cache: false,
success : function(data){
var data = $.parseJSON(data);
console.log(data);
}
});
如果你使用
实际上你甚至不需要解析它$.getJSON('http://localhost:8888/290_project/api_write.php', function(alreadyParsedJsonData) {
// do stuff
});