php,JavaScript 如何读取并修改json文件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php,JavaScript 如何读取并修改json文件?相关的知识,希望对你有一定的参考价值。

打算读取json后,将新的数据写入,然后保存进json文件,现在对json的读取后的数组变量值赋予比较有困难。求助。

  1、直接当做js文件引入 ,相应变量就能获取到;
  2、如果想读取本地json文件,需要环境,并且需要后台程序支持,不然出现安全性问题;
  3、可以使用bloburl方式去获取文件,不需要后台支持,需要配环境 不然也有安全性问题;
  用ajax请求这个json文件,换句话说,就是如下伪代码:
  //请求/todo.json这个路径时,返回json文件
  $.get(\'/todo.json\').done(function(data)
  do something with the data
  );
参考技术A

    先json_decode将json变成数组,数组比json字符串要好操作些吧

    数组修改完毕后,再用json_ecode将数组转为json字符串

    最后存入数据库

追问

能告诉我怎么获取外部json文件吗?获取后赋给一个变量,然后对那个变量decode就变成数组了?

追答

curl或者file_get_content

追问

是这样吗:file_get_content,然后decode成array,然后修改,最后输出?

追答

这最后一问我看不懂啊

本回答被提问者采纳

如何读取 JSON 文件并传输到 Flask 组织的 HTML 中的 Javascript?

【中文标题】如何读取 JSON 文件并传输到 Flask 组织的 HTML 中的 Javascript?【英文标题】:How to read JSON file and transmit to Javascript in HTML organized by Flask? 【发布时间】:2022-01-20 19:56:04 【问题描述】:

我正在尝试通过 p5js 使用 Flask 组织的服务器以 JSON 格式可视化一堆数据。

假设我有一个 JSON 文件 data.json

["a":"1","b":"2","c","3"]

而我的 Python 代码是:

from flask import *

app = Flask(__name__)

def index():
    data_list = json.load(open('data.json'))
    data_json = json.dumps(data_list)
    return render_template("index.html", data_json=data_json)

if __name__ == '__main__':
    app.run(port=7775)

到目前为止,我想出了如何将我的 JSON 文件发送到 HTML,但是如何通过 p5js 读取 HTML 中的 JSON 文件呢?这是我的 HTML 代码:

<!DOCTYPE html>
<html>

<head>
    <script src="js/p5.js"></script>
    <script src="sketch.js"></script>
</head>

<body>
    Hello
</body>
</html>

实际上,起初看起来,在 Flask 中,HTML 无法正确读取 p5.jssketch.js。错误代码为Failed to load resource: the server responded with a status of 404 (NOT FOUND)

其次,我可以通过data_json打开HTML格式的JSON文件,但是如何传输到sketch.js以便可视化?

我应该怎么做才能修复它?非常感谢您的帮助!

【问题讨论】:

【参考方案1】:

理想情况下,您的 JavaScript 会通过 Fetch API 对数据发出自己的 HTTP 请求。这允许您缓存 HTML,同时保持数据分离。

但在某些情况下,将数据直接构建到 HTML 中确实有意义。在这些时候,您可以使用脚本标签并在该脚本标签内再次将数据序列化为 JSON。

所以,在您的模板中:

<script>
  const data = /* your code to serialize and output data here */;
</script>

这将设置全局变量data,您可以从其他脚本访问该变量。使用 JSON 序列化可确保您的数据与 JavaScript 兼容,而无需担心任何额外的转义。也就是说,序列化为 JSON 的数据可以被 JavaScript 引擎解释,数据不会作为任意脚本泄露出去。

【讨论】:

我明白了你的想法。如果我在HTML中设置了全局变量data,我的&lt;script src="sketch.js"&gt;&lt;/script&gt;封装的javascript代码可以直接使用吗?我可以在sketch.js 文件中使用它,还是应该做任何初始化工作? 是的,如果该数据设置在全局变量中,在这种情况下,您将能够在 sketch.js 中访问它。【参考方案2】:

实际上,您不需要任何 python 或库。你可以使用这个功能:


function readTextFile(file)
    let rawFile = new XMLHttpRequest();
    rawFile.open("GET", file, false);
    let txt = '';
    rawFile.onreadystatechange = function ()
    
        if(rawFile.readyState === 4)
        
            if(rawFile.status === 200 || rawFile.status == 0)
            
                var allText = rawFile.responseText;
                txt = allText;
            
        
    
  
    rawFile.send(null);
  return txt;


并获取文件的内容。 使用JSON.parse() 把它变成一个对象:

let variable = JSON.parse(readTextFile('info.json'))
document.getElementById('hi').innerHTML = variable;

html: &lt;p id='hi'&gt;&lt;/p&gt;

您的 html 应该显示该对象。

【讨论】:

这依赖于使用async = false,这是一种可怕的做法,已被浏览器供应商弃用。请停止建议这种做法。在现代浏览器中,fetch() 也取代了 XMLHttpRequest 你是对的。我正在尝试使用 Flask,因为我想通过不断运行 python 来不断收集数据。但是我现在还没有想出如何将 Flask 和这个函数结合起来。谢谢你的帮助!另外,能告诉我为什么会出现404错误吗?

以上是关于php,JavaScript 如何读取并修改json文件?的主要内容,如果未能解决你的问题,请参考以下文章

PHP 如何读取Javascript 对象的值?

如何使用PHP读取文本文件内容

php如何读取clob字段

如何使用Javascript读取本地文本文件并逐行读取?

PHP如何写入,读取与替换文件内容

在javascript中循环遍历python-dictionary-turned-into-json