如何格式化JSON输出以仅显示引号中的值而不显示键?

时间:2013-02-27 17:14:31

标签: php ajax json cordova jquery-mobile

这与前面提到的Need to display only array value in JSON output有关。

我只想显示像

这样的值
[
"autoComplete",
"ColdFusion",
"jQuery Mobile"
];

背景: 我正在通过Jquery mobile使用和AJAX调用从服务器(语言:PHP)检索数据。我想在我的Phonegap应用程序中使用https://github.com/commadelimited/autoComplete.js

请指教!我是JSON的新手。

2 个答案:

答案 0 :(得分:1)

当使用json_encode时,任何具有基于零的数字索引的数组(意味着它不是关联数组,以0开头且不丢失任何数字)将转换为javascript数组而不是js对象文字。您可以在php中使用array_values来获取数字索引的数组中的所有值。

<?php
//a generic array
$a = array(
    'foo'=>'bar',
    'one'=>'two',
    'three'=>'four');

//display the array in php
var_dump($a);
echo '<br>';

//json encode it
$json = json_encode($a);
var_dump($json);
echo '<br>';

//json encode just the values
$json = json_encode(array_values($a));
var_dump($json);

http://codepad.viper-7.com/hv06zn

答案 1 :(得分:0)

谢谢乔纳森。

但是我找到了解决方案如下。我希望它对其他人也有用。

$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();

while($row = mysql_fetch_assoc($result)) {
  $records[] = $row["title"];
}


mysql_close($con);
echo json_encode($records);