How to generate JSON data with PHP?

CREATE TABLE Posts
{
id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
url VARCHAR(200)
}

json.php code

<?php
$sql=mysql_query("select * from Posts limit 20");
echo '{"posts": [';
while($row=mysql_fetch_array($sql))
{
$title=$row['title'];
$url=$row['url'];
echo '


{


"title":"'.$title.'",


"url":"'.$url.'"


},';
}
echo ']}';


?>

I have to generate results.json file.

452481 次浏览

使用 PHP 的 Json 方法创建 json,然后用 写作将其写入一个文件。

您可以简单地使用 php 的 < a href = “ http://php.net/Manual/en/function. json-encode.php”rel = “ norefrer”> json _ encode 函数,并通过诸如 翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳翻译: 奇芳一个 href = “ http://php.net/Manual/en/function. fwrite.php”rel = “ norefrer”> fwrite 之类的文件处理函数保存文件。

将获取的值插入到数组中,而不是回显。

如果 $rows是您的数据,则使用 file_put_contents()并将 json_encode($rows)插入到该文件中。

要在 PHP 中生成 JSON,您只需要一个函数 Json _ encode ()

在使用数据库时,首先需要将所有行放入数组。下面是 mysqli 的示例代码

$sql="select * from Posts limit 20";
$result = $db->query($sql);
$posts = $result->fetch_all(MYSQLI_ASSOC);

然后你可以直接使用这个数组或者使它成为另一个数组的一部分:

echo json_encode($posts);
// or
$response = json_encode([
'posts' => $posts,
]);

如果需要保存在文件中,那么只需使用 file_put_contents()

file_put_contents('myfile.json', json_encode($posts));

如果要提取动态记录,最好使用1个 php 文件来创建 json 表示,而不是每次都创建一个文件。

我的 _ json. php

$array = array(
'title' => $title,
'url' => $url
);
            

echo json_encode($array);


        

然后在脚本中设置文件 my_json.php的路径

用这个:

$json_data = json_encode($posts);
file_put_contents('myfile.json', $json_data);

可以在运行脚本之前创建 myfile.json。但是如果你有完全的 sudo 权限(读/写权限(对于你在 Mac 上) ,它不是强制性的。

下面是一个工作实例:

<?php
  

// data stored in an array called posts
$posts = Array (
"0" => Array (
"id" => "01",
"title" => "Hello",
),
"1" => Array (
"id" => "02",
"title" => "Yoyo",
),
"2" => Array (
"id" => "03",
"title" => "I like Apples",
)
);
// encode array to json
$json = json_encode($posts);
$bytes = file_put_contents("myfile.json", $json); //generate json file
echo "Here is the myfile data $bytes.";
?>

这里我已经提到了用于创建 Json 文件和以漂亮的方式打印 Json文件内的数组值的简单语法。

$array = array('name' => $name,'id' => $id,'url' => $url);
$fp = fopen('results.json', 'w');
fwrite($fp, json_encode($array, JSON_PRETTY_PRINT));   // here it will print the array pretty
fclose($fp);

希望对你有用。

首先,你需要解码它:

$jsonString = file_get_contents('jsonFile.json');
$data = json_decode($jsonString, true);

然后改变数据:

$data[0]['activity_name'] = "TENNIS";
// or if you want to change all entries with activity_code "1"
foreach ($data as $key => $entry) {
if ($entry['activity_code'] == '1') {
$data[$key]['activity_name'] = "TENNIS";
}
}

然后重新编码并保存到文件中:

$newJsonString = json_encode($data);
file_put_contents('jsonFile.json', $newJsonString);

收到