【问题标题】:how to write a json file as a datasource in php?如何在 php 中编写一个 json 文件作为数据源?
【发布时间】:2015-06-21 10:35:58
【问题描述】:

我有一些这样的数据

"name": "abc",
"adr": "bcd",
"partners": {
            "101": {
                   "name": "xyz.com",
                   "prices": {
                            "1001": {
                            "description": "Single Room",
                            "amount": 125,
                            "from": "2012-10-12",
                            "to": "2012-10-13"
                            },
                            "1002": {
                            "description": "Double Room",
                            "amount": 139,
                            "from": "2012-10-12",
                            "to": "2012-10-13"
                        }
                    }

现在,我必须用所有这些数据编写一个 json 并将其用作数据源。

我该怎么做?

【问题讨论】:

  • 创建一个 PHP 脚本,其中包含您需要的数据(如数组、对象等),json_encode() 将该数据写入一个字符串,然后将该字符串写入您的文件
  • @MarkBaker 你能举个小例子吗
  • 除了下面的答案,使用blob 数据类型作为数据库中的字段。

标签: php mysql json mysqli


【解决方案1】:

您发布的数据不是有效的 JSON。它遗漏了一些周围和结尾的括号。

好的,让我们修复它...并将其保存为data.json

{
    "name": "abc",
    "adr": "bcd",
    "partners": {
        "101": {
            "name": "xyz.com",
            "prices": {
                "1001": {
                    "description": "SingleRoom",
                    "amount": 125,
                    "from": "2012-10-12",
                    "to": "2012-10-13"
                },
                "1002": {
                    "description": "DoubleRoom",
                    "amount": 139,
                    "from": "2012-10-12",
                    "to": "2012-10-13"
                }
            }
        }
    }
}

要使用 PHP 访问 JSON,您只需加载文件并将 JSON 转换为数组。

<?php 
$jsonFile = "data.json"
$json = file_get_contents($jsonFile);
$data = json_decode($json, TRUE);

echo "<pre>";
print_r($data);
echo "</pre>";
?>

【讨论】:

    【解决方案2】:

    一个 PHP 脚本,用于创建一个包含此数据的 json 文件

    // the data you need 
    $phpData = [
        "name" => "abc",
        "adr" => "bcd",
        "partners" => [
            "101" => [
                "name" => "xyz.com",
                "prices" => [
                    "1001" => [
                        "description" => "Single Room",
                        "amount" => 125,
                        "from" => "2012-10-12",
                        "to" => "2012-10-13",
                    ],
                    "1002" => [
                        "description" => "Double Room",
                        "amount" => 139,
                        "from" => "2012-10-12",
                        "to" => "2012-10-13",
                    ]
                ]
            ]
        ]
    ];
    
    // json_encode() that data to a string
    $jsonData = json_encode($phpData);
    // write that string to your file
    file_put_contents('myJsonFile.json', $jsonData);
    

    并将其用作数据源

    $myData = json_decode(
        file_get_contents('myJsonFile.json')
    );
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      • 2017-12-30
      相关资源
      最近更新 更多