一、我们有一个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数组一条内容后保存到文件的更多相关文章

  1. 【Python】将对象存成json文件及从json取出对象

    常用代码,单拎出来以备查. 对象存json文件: import json obj={'name':'张有财','age':39,'arr':[2,34,5,6,7,88,'李有钱']} with op ...

  2. Java读取json文件并对json数据进行读取、添加、删除与修改操作

    转载:http://blog.csdn.net/qing_yun/article/details/46865863#t0   1.介绍 开发过程中经常会遇到json数据的处理,而单独对json数据进行 ...

  3. php读取excel文件 更新修改excel

    php读取excel文件示例,还有更新修改功能. 代码: //模板存放目录 $dir = $DOCUMENT_ROOT.'/backoffice/admin/oemcheck/'; $template ...

  4. java读取url中json文件中的json数据

    有时候需要远程从其他接口中获取json数据,如果遇到返回的json数据是一个文件而不直接是数据,那么可以通过以下方法进行读取: /** * 从数据接口获取到数据 * @return * @throws ...

  5. JsonResult序列化并保存json文件 以及对json文件读取反序列

    项目中我们经常遇到一些经常访问的接口,并且更新及时度不是特别高,那么我们可以利用文件来做一些数据请求的缓存. 这里以微信公众号获取粉丝用户列表为例,我们把微信公众号查到的用户先缓存在文件中,这样在翻页 ...

  6. 从接口自动化测试框架设计到开发(二)操作json文件、重构json工具类

    用例模板里的请求数据多,看起来很乱,所以可以通过访问另外一个文件的方式获取请求数据 把请求数据都放在一个json文件中 取出login的内容: import json fp = open('G:/un ...

  7. java读取txt文件的2中方法---并将内容(每一行以固定的字符分割切成2段)存到map中去

    #java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回: ...

  8. Java读取Excel文件转换成JSON并转成List——(七)

    Jar包

  9. POI 读取Excel文件 并解析JSON数据

    package skuPrice; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

随机推荐

  1. FormsAuthentication.HashPasswordForStoringInConfigFile方法再.net core中的替代代码

    FormsAuthentication.HashPasswordForStoringInConfigFile()这个加密方法再.net core中不存在了,可以用下面的方式达到一样的加密效果 usin ...

  2. Linux centosVMware 自动化运维Ansible介绍、Ansible安装、远程执行命令、拷贝文件或者目录、远程执行脚本、管理任务计划、安装rpm包/管理服务、 playbook的使用、 playbook中的循环、 playbook中的条件判断、 playbook中的handlers、playbook实战-nginx安装、管理配置文件

    一.Ansible介绍 不需要安装客户端,通过sshd去通信 基于模块工作,模块可以由任何语言开发 不仅支持命令行使用模块,也支持编写yaml格式的playbook,易于编写和阅读 安装十分简单,ce ...

  3. 34 java 文件过滤 FileFilter

    package com.da.tool.util; import org.apache.commons.io.filefilter.RegexFileFilter; import java.io.Fi ...

  4. js实现超范围的数相加

    在js中能表示的最大安全整数是 9007199254740991,可以用API Number.MAX_SAFE_INTEGER 看一下  超出范围就会发生精度丢失,像这样 解决方法: 相当于一个字符串 ...

  5. error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation

    遇到这个问题,请打开项目的Properties(属性)------->Configuration Properties(配置属性)------>C/C++ ------>Prepro ...

  6. matlab练习程序(龙格库塔法)

    非刚性常微分方程的数值解法通常会用四阶龙格库塔算法,其matlab函数对应ode45. 对于dy/dx = f(x,y),y(0)=y0. 其四阶龙格库塔公式如下: 对于通常计算,四阶已经够用,四阶以 ...

  7. 设计模式课程 设计模式精讲 7-3 建造者模式源码解析(jdk+guava+spring+mybaties)

    1 源码解析 1.1 jdk解析 1.2 guava解析 1.3 spring解析 1.4 mybaties解析 1 源码解析 1.1 jdk解析 String public StringBuilde ...

  8. sklearn.neighbors.KNeighborsClassifier(k近邻分类器)

    KNeighborsClassifier参数说明KNeighborsClassifier(n_neighbors=5, weights='uniform', algorithm='auto', lea ...

  9. js——form表单验证

    用js实现一个简易的表单验证 效果: 代码: <html> <head> <title>js校验form表单</title> <meta char ...

  10. java实现经典排序算法

    前言 博主最近在恶补基础知识,算法必然是必不可少的,那么就从经典排序算法开始吧!(图源网络,侵删),没有列出全部,因为在期末考试囧 代码太多,就只显示了最关键的部分 1. 冒泡排序 实现思路: (1) ...