八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件

时间:2022-09-07 20:55:17

一、我们有一个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;

三、效果如下:

八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件

八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件

不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢。

八、Delphi10.3读取JSON文件,并修改JSON数组一条内容后保存到文件

八、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. linq查询结果指定列的两种方式

    方式一: var results = from product in products orderby product.Price descending select new { product.Na ...

  2. 高斯混合和EM算法

    首先介绍高斯混合模型: 高斯混合模型是指具有以下形式的概率分布模型: 一般其他分布的混合模型用相应的概率密度代替(1)式中的高斯分布密度即可. 给定训练集,我们希望构建该数据联合分布 这里,其中是概率 ...

  3. java新手笔记34 连接数据库

    1.JdbcUtil package com.yfs.javase.jdbc; import java.sql.Connection; import java.sql.DriverManager; i ...

  4. bzoj 2816: [ZJOI2012]网络(splay)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2816 [题意] 给定一个无向图,满足条件:从一个节点出发的同色边不超过2条,且不存在同 ...

  5. java foreach循环为什么不能赋值

    直接上代码 public class test4 { public static void main(String args[]){ int [] a=new int[3]; for(int j:a) ...

  6. python 常见函数的用法

    filter(function,ls) 函数包括两个参数,分别是function和list.该函数根据function参数返回的结果是否为真来过滤list参数中的项,最后返回一个新列表. 如: map ...

  7. Asp.net MVC通过自定义特性实现Action日志记录

    一.自定义特性 /// <summary> /// 描述特性 /// </summary> [AttributeUsage(AttributeTargets.Method)] ...

  8. hdu 2588&lpar;简单的欧拉

    题意:给你一个n,m问你1-n里面(x)有多少对gcd(x, n)>=m. 思路:我们可以设n=a*b, x=a*c,此时我们可以知道b,c是互质的,那么就可以用欧拉来求解 /* gyt Liv ...

  9. 手动设置3G的wifi迷你无线路由

    1.插入中兴的3G无线网卡,终端上显示如下内容: ~ >: usb 1-1.3: new full speed USB device number 11 using s3c2410-ohci u ...

  10. Spring Boot—16日志设置

    application.properties # server.address=0.0.0.0 server.port=8080 server.servlet.context-path=/test s ...