Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用AJAX获取JSON数据并转换为字符串数组_Php_Jquery_Ajax - Fatal编程技术网

Php 使用AJAX获取JSON数据并转换为字符串数组

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

我试图将数据放入字符串数组中,以便将其用作jquery自动完成的数据集。我现在得到的是一个对象数组,我认为它不起作用

我的主页上的Jquery:

$.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自动完成的数据集。”谢谢。最后是一个智能响应。这非常有意义。