Php 使用AJAX获取JSON数据并转换为字符串数组
我试图将数据放入字符串数组中,以便将其用作jquery自动完成的数据集。我现在得到的是一个对象数组,我认为它不起作用 我的主页上的Jquery:Php 使用AJAX获取JSON数据并转换为字符串数组,php,jquery,ajax,Php,Jquery,Ajax,我试图将数据放入字符串数组中,以便将其用作jquery自动完成的数据集。我现在得到的是一个对象数组,我认为它不起作用 我的主页上的Jquery: $.get("get_schools.php", function(data) { var results = jQuery.parseJSON(data); alert(results); }); 这将产生以下格式的数据: [对象对象],[对象对象对象],[对象对象] 在get_schoo
$.get("get_schools.php", function(data) {
var results = jQuery.parseJSON(data);
alert(results);
});
这将产生以下格式的数据:
[对象对象],[对象对象对象],[对象对象]
在get_schools.php上:
我查询一个数据库并将结果返回到一个名为$displaynames的数组。然后:
echo json_encode($displaynames);
这看起来像:
[{“DisplayName”:“XXXX街中学”},{“DisplayName”:“XXXXX学校”},{“DisplayName”:“XXXX小学”}
更新:
此问题已标记为可能重复,但另一个问题与获取对象的属性有关。我没有尝试获取对象的属性。我尝试将对象数组转换为字符串数组。我需要属性名称以及结果中的值。另一个问题仅返回值。这取决于您将对象放入的对象。您收到的对象很好,但要访问其中的值,您需要通过DisplayName属性访问它们
$.each(results, function(i,e) {
console.log(e.DisplayName);
})
这将记录XXX街中学、XXXX学校等
若要避免此行为,请不要将值推入数组的命名部分。
我假设您希望结果类似于:
["XXX Street", "xxxxx school", "xxxx", ... ]
因此,在php代码中,您希望执行以下操作:
$json = array();
foreach($school in $schools) {
array_push($json, $school->displayName); //obviously this is unique to your application and not this verbatim
}
echo json_encode($json);
基本上,你想要的是一个列表,而不是一个关联数组。现在,如果你有更多需要显示的关于一所学校的信息,你会想要一个关联数组。但是考虑到你的使用需求,我相信这更接近你需要的
另一方面,如果在jQuery中使用$.getJSON()函数(与$.get相反),则可以避免使用对jQuery.parseJSON()的调用,而只在success函数中获得一个json对象
$.get("get_schools.php", function(data) {
var results = jQuery.parseJSON(data).map(function (item) {
return item.DisplayName;
});
alert(results);
});
结果将是一个字符串数组
["XXXX Street Middle School", "XXXXX Schools", "XXXX Elementary School"]
“我认为这不起作用。”这是一个问题。还是一个信息?如何在PHP上构建
$displaynames
var?我认为存在错误,根据您的判断,正确的格式是什么?您还应该使用console.log()
用于调试。它更有用,信息更丰富。尤其是在使用对象时。您的数据似乎还可以。只需使用控制台。日志(结果)
查看ist内容-警报
仅适用于显式字符串。您是否不阅读第一句话?“我正在尝试将数据放入字符串数组中,以便将其用作jquery自动完成的数据集。”谢谢。最后是一个智能响应。这非常有意义。