一、我们有一个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. PAT A1034 Head Of Gang

    用并查集分割团伙,判断输出~ #include<bits/stdc++.h> using namespace std; ; },weight[maxn]; unordered_map< ...

  2. mysql cmmand not found

    https://www.cnblogs.com/yangzigege/p/8337393.html

  3. 五 Spring的配置:Bean的配置,生命周期和作用范围

    Bean相关的配置: <bean>标签的id和name的配置: id:使用了约束中的唯一约束,里面不能出现特殊字符 name:没有使用唯一约束,理论上可以重复,实际上开发不行,里面可以出现 ...

  4. Java基础 -1.2

    Shell是脚本程序的含义 在很多编程语言中为了方便使用者进行代码的开发 都会有shell交互式编程环境 可能是为了进行一些简短的程序验证 但是在java里面就必须编写很多的结果代码才可以实现 为了解 ...

  5. JS中字符串的编码 解码

    DEPTNAME 是一个字符串 编码: DEPTNAME = encodeURI(encodeURI(DEPTNAME)); 解码: DEPTNAME = decodeURI(DEPTNAME,&qu ...

  6. webpack中devtool的配置方案[开发模式]---[线上模式]

    // 开发模式下 module.exports = { mode: 'development', devtool: 'cheap-module-eval-source-map' } // 线上模式下 ...

  7. YARN 集群的资源分配

    YARN 集群在分配任务时,存在两种方式 1. DefaultResourceCalculator,只考虑内存(memory),每个 container 的 cpu 资源都分配 1 个. 2. Dom ...

  8. 编写跨平台Java程序注意事项

    使用Java语言编写应用程序最大的优点在于“一次编译,处处运行”,然而这并不是说所有的Java程序都具有跨平台的特性,事实上,相当一部分的Java程序是不能在别的操作系统上正确运行的,那么如何才能编写 ...

  9. Wepy框架和mpVue框架的比较及使用mpVue框架需要注意的点

    Wepy框架 它是一款类Vue框架,在代码风格上借鉴了Vue,本身和Vue没有任何关系. mpVue框架 它是从整个Vue的核心代码上经过二次开发而形成的一个框架,相当于是给Vue本身赋能,增加了开发 ...

  10. vagrant 添加带版本号的 box

    众所周知,vagrant添加box的时候要从外网下载,那速度...(说多了都是泪),所以只好用下载工具下载到本地之后再添加. 如何搭建 homestead:https://laravelacademy ...