八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件
一、我们有一个JSON文件,如下:
- {
- "在野": [
- {
- "城池": 0,
- "武将": 74,
- "登场年": 190
- },
- {
- "城池": 0,
- "武将": 11,
- "登场年": 208
- },
- {
- "城池": 29,
- "武将": 78,
- "登场年": 198
- }
- ],
- "跟随": [
- {
- "父将": 182,
- "子将": 176,
- "登场年": 197
- },
- {
- "父将": 222,
- "子将": 224,
- "登场年": 199
- }
- ]
- }
二、我们读取“在野”,代码如下:
- //读取JSON文件内容
- procedure TForm1.Button1Click(Sender: TObject);
- var
- m_Json, m_Json_Item: TJSONObject;
- m_StringStream: TStringStream;
- m_JsonArr: TJSONArray;
- I: Integer;
- begin
- m_StringStream := TStringStream.Create('', TEncoding.UTF8);
- m_StringStream.LoadFromFile(Edit1.Text);
- m_Json := TJSONObject.Create;
- m_Json := TJSONObject.ParseJSONValue(m_StringStream.DataString) as TJSONObject;
- m_JsonArr := m_Json.Values['在野'] as TJSONArray;
- // 第10个
- for I := to m_JsonArr.Count - do
- begin
- m_Json_Item := m_JsonArr.Items[I] as TJSONObject;
- Memo1.Lines.Add(Format('武将: %s ,登场年: %s ', [m_Json_Item.Values['武将'].Value, m_Json_Item.Values['登场年'].Value]));
- end;
- end;
- //修改JSON文件内容
- procedure TForm1.Button2Click(Sender: TObject);
- var
- m_Json, m_Json_Item: TJSONObject;
- m_StringStream: TStringStream;
- m_JsonArr: TJSONArray;
- begin
- m_StringStream := TStringStream.Create('', TEncoding.UTF8);
- m_StringStream.LoadFromFile(Edit1.Text);
- //读取JSON
- m_Json := TJSONObject.Create;
- m_Json := TJSONObject.ParseJSONValue(m_StringStream.DataString) as TJSONObject;
- m_JsonArr := m_Json.Values['在野'] as TJSONArray;
- // 修改JSON数组内容
- m_Json_Item := m_JsonArr.Items[] as TJSONObject;
- m_Json_Item.RemovePair('武将');
- m_Json_Item.AddPair('武将', '');
- m_Json_Item.RemovePair('登场年');
- m_Json_Item.AddPair('登场年', '');
- //保存到文件
- m_StringStream.Clear;
- m_StringStream.WriteString(m_Json.ToString);
- m_StringStream.SaveToFile(Edit1.Text);
- end;
三、效果如下:
不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢。
八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件的更多相关文章
- 【Python】将对象存成json文件及从json取出对象
常用代码,单拎出来以备查. 对象存json文件: import json obj={'name':'张有财','age':39,'arr':[2,34,5,6,7,88,'李有钱']} with op ...
- Java读取json文件并对json数据进行读取、添加、删除与修改操作
转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0 1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...
- php读取excel文件 更新修改excel
php读取excel文件示例,还有更新修改功能. 代码: //模板存放目录 $dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/'; $template ...
- java读取url中json文件中的json数据
有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...
- JsonResult序列化并保存json文件 以及对json文件读取反序列
项目中我们经常遇到一些经常访问的接口,并且更新及时度不是特别高,那么我们可以利用文件来做一些数据请求的缓存. 这里以微信公众号获取粉丝用户列表为例,我们把微信公众号查到的用户先缓存在文件中,这样在翻页 ...
- 从接口自动化测试框架设计到开发(二)操作json文件、重构json工具类
用例模板里的请求数据多,看起来很乱,所以可以通过访问另外一个文件的方式获取请求数据 把请求数据都放在一个json文件中 取出login的内容: import json fp = open('G:/un ...
- java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去
#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...
- Java读取Excel文件转换成JSON并转成List——(七)
Jar包
- POI 读取Excel文件 并解析JSON数据
package skuPrice; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...
随机推荐
- IELTS Writing Task 2: 'music' essay
IELTS Writing Task 2: 'music' essay Here's my band 9 sample answer for the question below. Some peop ...
- STM32 RTC上的唤醒和闹钟
RTC很简单只要给备用电,RTC就会不停,可以进行设置和读时间.同时在RTC上也涉及了闹钟(EXTI_17:RTC_FLAG_ALRAF,相当于RTC的定时器,闹钟到了之后进行异步操作)和唤醒中断(低 ...
- Linux命令:yum命令
YUM: Yellowdog Update Modifier,rpm的前端程序,可解决软件包相关依赖性,可在多个库之间定位软件包,up2date的替代工具 一.yum命令用法 yum repolist ...
- 调用天气预报webservice接口
1.将 服务端的wsdl文档保存至 本地 http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?WSDL 2.将里面的 <s:element re ...
- js中for循环(原生js)
1,普通for循环,经常用的数组遍历 var arr = [1,2,3,4,5]; for ( var i = 0; i <arr.length; i++){ console.log(arr[i ...
- JS拖拽-面向对象拖拽-继承
//普通拖拽 /* * CSS */ #div1{ width:100px; height:100px; position:absolute; background:red; cursor:move; ...
- CSS - 滑动门技术
1. 概念: 1.1 为了使各种特殊形状的背景能够自适应元素中文本内容的多少,出现了CSS滑动门技术. 1.2 使各种特殊形状的背景能够自由拉伸滑动,以适应元素内部的文本内容,可用性更强. 1.3 最 ...
- FLASK - 请求和响应
请求都封装在request对象里面了 from flask import Flask from flask import request from flask import render_templa ...
- 笔记||Pyhthon3进阶之多线程操作共享数据
# 多线程操作共享数据--------------------------------------------------------------- # import threading# 使用锁# ...
- Golang 如何交叉编译
Golang 支持交叉编译,即在一个平台上生成另一个平台的可执行程序.方法如下: Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED=0 GOOS=linux G ...