当前位置: 首页 > 面试题库 >

PHP从文件读取和写入JSON

冯玮
2023-03-14
问题内容

我在文件中有以下JSON list.txt

{
"bgates":{"first":"Bill","last":"Gates"},
"sjobs":{"first":"Steve","last":"Jobs"}
}

如何"bross":{"first":"Bob","last":"Ross"}使用PHP 添加到文件中?

这是我到目前为止的内容:

<?php

$user = "bross";
$first = "Bob";
$last = "Ross";

$file = "list.txt";

$json = json_decode(file_get_contents($file));

$json[$user] = array("first" => $first, "last" => $last);

file_put_contents($file, json_encode($json));

?>

这给了我一个致命错误:无法在此行上将stdClass类型的对象用作数组:

$json[$user] = array("first" => $first, "last" => $last);

我正在使用PHP5.2。有什么想法吗?谢谢!


问题答案:

错误消息中的线索是-如果您查看文档以json_decode了解它可能需要第二个参数,该参数控制返回数组还是对象-它默认为object。

因此,将您的通话更改为

$json = json_decode(file_get_contents($file), true);

并且它将返回一个关联数组,您的代码应该可以正常工作。



 类似资料:
  • 问题内容: 这是一个有点奇怪的请求,但我正在寻找一种方法来将列表写入文件,然后再读回去。 我没有办法重新制作列表,以使它们如下面的示例所示正确地形成/格式化。 我的列表具有如下数据: 问题答案: 如果您不需要它是人类可读/可编辑的,则最简单的解决方案是使用。 来写: 读书: 如果您 确实 需要使它们易于阅读,则我们需要更多信息。 如果保证是没有嵌入换行符的字符串列表,则只需每行写一个: 如果它们是

  • null 如果我的理解有误,请指正。还有以下问题: 我的理解是,Hadoop中的文件读/写没有任何并行性,它所能执行的最佳操作与传统的文件读或写(即,如果复制设置为1)+分布式通信机制中涉及的一些开销是一样的。 并行性仅在数据处理阶段通过Map Reduce提供,而不是在客户端读/写文件期间提供。

  • 问题内容: 我需要在文本文件中读写数据,但是还无法弄清楚该怎么做。 我在Swift的iBook中找到了此示例代码,但我仍然不知道如何写入或读取数据。 问题答案: 为了进行读写,您应该使用可写的位置,例如documents目录。以下代码显示了如何读写简单的字符串。您可以在操场上进行测试。 雨燕3.x-5.x 斯威夫特2.2 斯威夫特1.x

  • 问题内容: 我试图逐行读取文件,然后使用Node.js将其输出到另一个文件。 我的问题是由于Node.js的异步特性,行的顺序有时会混乱。 例如,我的输入文件就像:第1行第2行第3行 但是输出文件可能像:第1行第3行第2行 下面是我的代码。 任何想法将不胜感激,谢谢。 问题答案: 如果要编写同步代码,请仅使用同步功能: 对于异步方法,您可以编写类似

  • 我试图将json对象写入文件/从文件中读取json对象。json结构很复杂,是动态生成的。 对于较小的json对象,我只需将json转换为string,然后进行string写/读操作。当json太大时,这会导致内存不足问题。 如何将JSONObject直接流到文件中,并直接从文件中流回JSONObject?

  • 问题内容: 我必须阅读tomcat日志文件,并在一段时间(例如:一个小时)后再次读取该文件(仅针对新添加的内容),因此我创建了RandomAccessFile来记录我完成的最后一个位置并使用BufferedReader.readLine()方法。 但是,我发现有时我无法读取文件的整行。 例如,tomcat正在尝试编写以下内容(仅作为示例): 192.168.0.0本地主机/index.html .