1. 打开 JSON 文件:在 `QFile` 中使用 `open` 方法打开 JSON 文件,并设置打开模式为读写模式。例如:
```cpp
QFile file("example.json")
if (!file.open(QIODevice::ReadWrite)) {
// 处理文件打开失败的情况
}
```
在上面的示例中,我们打开了名为 `example.json` 的 JSON 文件,并将打开模式设置为读写模式。
2. 读取 JSON 数据:在 `QFile` 中使用 `readAll` 方法读取 JSON 文件的所有内容,并将其存储为一个 `QByteArray` 对象。例如:
```cpp
QByteArray data = file.readAll()
```
在上面的示例中,我们使用 `readAll` 方法读取 JSON 文件的所有内容,并将其存储为一个 `QByteArray` 对象。
3. 解析 JSON 数据:使用 `QJsonDocument` 类的 `fromJson` 方法将 `QByteArray` 对象解析为 JSON 数据。例如:
```cpp
QJsonDocument doc = QJsonDocument::fromJson(data)
```
在上面的示例中,我们使用 `QJsonDocument` 类的 `fromJson` 方法将 `QByteArray` 对象解析为 JSON 数据,并将其存储为一个 `QJsonDocument` 对象。
4. 修改 JSON 数据:通过 `QJsonDocument` 对象修改 JSON 数据。例如:
```cpp
QJsonObject obj = doc.object()
obj["name"] = "John"
doc.setObject(obj)
```
在上面的示例中,我们首先通过 `QJsonDocument` 对象的 `object` 方法获取 JSON 数据的 `QJsonObject` 对象,然后修改该对象的 `"name"` 属性,并使用 `setObject` 方法更新 `QJsonDocument` 对象。
5. 写入 JSON 数据:在 `QFile` 中使用 `write` 方法将修改后的 JSON 数据写入文件。例如:
```cpp
file.seek(0)
file.write(doc.toJson())
```
在上面的示例中,我们首先使用 `seek` 方法将文件指针移动到文件开头,然后扮含使用 `write` 方法将修改后的 JSON 数据写入文件。
6. 关闭文件:在完成文件 *** 作后,使用 `close` 方法关闭 `QFile` 对象。例喊缺凳如:
```cpp
file.close()
```
在上面的示例中,我们使用 `close` 方法关闭了 `QFile` 对象。
以上就是同时读写 JSON 文件的步骤。需要注意的是,在实际应用中,还需要考虑一些异常情况,如文件打开失败、文件读取失败、JSON 解析失败等,需要添加适当的错误处理代码来处理这些异常情况。
json文件是一种高薯判轻量级的数据交互格式。一般在jquery中使用getJSON()方法读取。$.getJSON(url,[data],[callback])
url:加载的页面地址
data: 可选项,发送到服务器的数据,格式是key/value
callback:可选项,加载成功后执行的回调函数
1.首先建一个JSON格式的文件userinfo.json 保存用户信息。如下:
?
1234567891011121314151617
[{"name":"张国立","sex":"男","email":"zhangguoli@123.com"},{"name":"张铁林","sex":"男","email":"zhangtieli@123.com"},{"name":"邓婕","sex":"女","email":"zhenjie@123.com"}]
2.其次建一个页面用于戚改获取JSON文件里的用户信息数据,并显示
?
123456789101112131415161718192021222324252627282930313233343536373839404142
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/htmlcharset=utf-8" /><title>getJSON获取数据<手梁/title><script type="text/javascript" src="js/jquery-1.8.2.min.js"></script><style type="text/css">#divframe{ border:1px solid #999width:500pxmargin:0 auto}.loadTitle{ background:#CCCheight:30px}</style><script type = "text/javascript" >$(function (){ $("#btn").click(function () {$.getJSON("js/userinfo.json", function (data){ var $jsontip = $("#jsonTip") var strHtml = "123" //存储数据的变量 $jsontip.empty() //清空内容 $.each(data, function (infoIndex, info){strHtml += "姓名:" + info["name"] + "<br>" strHtml += "性别:" + info["sex"] + "<br>" strHtml += "邮箱:" + info["email"] + "<br>" strHtml += "<hr>" }) $jsontip.html(strHtml) //显示处理后的数据}) })})</script></head><body><div id="divframe"><div class="loadTitle"><input type="button" value="获取数据" id="btn"/></div><div id="jsonTip"></div></div></body></html>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)