JSON和数组结构类型未来

时间:2015-07-03 10:23:43

标签: php arrays json

我正在尝试从sql查询创建一个json文件,并使用twitter typeahead搜索此json。然而,json格式看起来并不正确。

json需要采用某种格式作为类型,如下所示;

reobj = re.compile('\d{4}-\d{2}-\d{2}')
for root, subs, files in os.walk('.'):
    for name in subs:
        if reobj.match(name):
            print(name)

但是我的json采用以下格式;

['Alabama', 'Alaska', 'Arizona', 'Arkansas', 'California' ...];

新手到php / sql / json我确定有一些非常明显的东西我错过了或做错了。也许我应该使用["{\"title\":\"Item 1\"}","{\"title\":\"Item 2\"}","{\"title\":\"Item 3\"}" 而不是foreach?我能够回显while,所以我现在查询正在运行。

如果有人冷我指向正确的方向,我会很感激。

到目前为止我的代码;

$titles

4 个答案:

答案 0 :(得分:1)

您正在执行两次json_encode,但情况并非如此。

相反,守则应如下所示:

$data[] = $row;
$titles = json_encode($data);

或只是

$titles = json_encode($row);

答案 1 :(得分:1)

  1. 您的数据过度编码和
  2. 你没有包含你真正想要的数据。
  3. 将您想要的数据放入数组中,只在最后对JSON进行编码:

    while ($row = $result->fetch_assoc()) {
        $data[] = $row['title'];
    }
    
    file_put_contents('titles.json', json_encode($data));
    

答案 2 :(得分:0)

使用json_encode一次

    $data[] = $row; /*$data[] = json_encode($row);*/

并写下:

 $titles = json_encode($data);  

$titles = json_encode(array_values($data));  /*You may need to use this to get exact output*/

while循环后

答案 3 :(得分:-1)

您正在向json array('title'=>'sometitle')插入关联数组,但您只需要该标题 解决方案是仅将db结果行中的标题值保存到数组中:

while($row = $result->fetch_assoc()){
    $data[] = $row['title'];
    echo json_encode($data); // dont encode twice
}
file_put_contents('titles.json', json_encode($data));