【问题标题】:How to format JSON output to display only values in quotes and not keys?如何格式化 JSON 输出以仅显示引号中的值而不显示键?
【发布时间】:2013-02-27 17:14:31
【问题描述】:

这与之前问过的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 新手。

【问题讨论】:

  • 您的问题非常不清楚。你试过什么?你有什么问题?
  • echo json_encode(array('autoComplete', 'ColdFusion', 'jquery Mobile')) 完全符合您的要求。
  • 这些值是从数据库动态生成的,因此无法执行 json_encode(array('autoComplete', 'ColdFusion', 'jquery Mobile'))几个小时!!)。

标签: php ajax json cordova jquery-mobile


【解决方案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

【讨论】:

    【解决方案2】:

    谢谢乔纳森。

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

    $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);
    

    【讨论】:

      猜你喜欢
      • 2016-01-17
      • 2015-04-29
      • 2015-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-28
      相关资源
      最近更新 更多