八、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 := 0 to m_JsonArr.Count - 1 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[2] as TJSONObject;
  m_Json_Item.RemovePair(‘武将‘);
  m_Json_Item.AddPair(‘武将‘, ‘520‘);
  m_Json_Item.RemovePair(‘登场年‘);
  m_Json_Item.AddPair(‘登场年‘, ‘1314‘);

  //保存到文件
  m_StringStream.Clear;
  m_StringStream.WriteString(m_Json.ToString);
  m_StringStream.SaveToFile(Edit1.Text);
end;

三、效果如下:

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

原文地址:https://www.cnblogs.com/tianpan2019/p/11823676.html

时间: 2024-11-15 20:30:54

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

Android 读取assets文件夹中json文件

这里要介绍一下 读取assets文件夹中json文件 转换成list 集合 只接看代码 非常简单 public static List<State> getStates(Context context) { InputStream is = null; ByteArrayOutputStream bos = null; try { is = context.getAssets().open("area.json"); bos = new ByteArrayOutputStr

当程序出现这个提示的时候,是因为你一边遍历数组,又同时修改这个数组里面的内容,导致崩溃

2014-12-17 16:22:15.838 贵金属走势[4638:150754] *** Terminating app due to uncaught exception 'NSGenericException', reason: '*** Collection <__NSCFArray: 0x799dba00> was mutated while being enumerated.' 当程序出现这个提示的时候,是因为你一边遍历数组,又同时修改这个数组里面的内容,导致崩溃,网上的方法如下

C#读取excel文件,生成json

这段时间在做一个数据管理系统,需要读取excel表格,组装json,最终存入mongodb,这里记录一下解决思路. 需要做的准备工作: 1.安装AccessDatabaseEngine 下载地址:https://products.office.com/zh-cn/compare-all-microsoft-office-products?tab=1 有32bit和64bit两个版本,具体要安装哪个要看你的Office程序是32bit的还是64bit的.通常来讲,一般是选择与office程序相对应

python读取json文件报 No JSON object could be decoded

def load(): with open('D:\\jiance.geojson') as json_file: data = json.load(json_file) return data 代码如上,读取json并load时报错: No JSON object could be decoded 解决方法: 可用Nodepad++将json文件打开并以UTF8无BOM格式保存,然后再次读取

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

项目中我们经常遇到一些经常访问的接口,并且更新及时度不是特别高,那么我们可以利用文件来做一些数据请求的缓存. 这里以微信公众号获取粉丝用户列表为例,我们把微信公众号查到的用户先缓存在文件中,这样在翻页时就不需要再重新请求接口. 获取微信粉丝用户 /// <summary> /// 用户列表 /// </summary> /// <returns></returns> public ActionResult UserList() { //页面加载时,将微信拉去

PowerBI技巧:通过JSON文件来修改仪表盘的主题

我们在使用PowerBI制作仪表盘的过程中,对每个视觉对象都需要进行详细的参数设置,且需要对整个仪表盘的主题进行配置,以求美观与统一.关于PowerBI,它除了默认的主题外,还提供了另外7类主题,如图:总之,软件提供的颜色有限,只有8个,且类别有限,我们不能没做一个仪表盘,都需要把这些统一需要设置的参数都通通重新做一遍吧,那样也太浪费时间了,微软为我们提供了主题,我们可以通过主题,自定义满足我们企业自身的色系,以及各类视觉对象通用的参数设置,例如:针对"卡片图",我们统一不需要显示它的

遍历win10文件夹并解析json文件,按照json格式存入mongo数据库(基于python 3.6)

import reimport jsonfrom pymongo import MongoClientimport os # def Write_json(data):# open_Json = open("1.json", "a")# Write_json = json.dumps(data)# open_Json.write(Write_json)# open_Json.close() def load_Mongo(Address, port, Process_

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

#java读取txt文件的第一种方法 /** * 方法:readTxt * 功能:读取txt文件并把txt文件的内容---每一行作为一个字符串加入到List中去 * 参数:txt文件的地址 * 返回:Map * @param file * @return * @throws IOException */ public static Map<String, String> readTxt(String file) throws IOException { Map<String, Strin

PHP读取csv文件转换成JSON并写入新的文件

没什么好说的,直接上代码. <?php function csvJSON() { // data.csv 是你的csv文件 $lines = array_map('str_getcsv', file('data.csv'));; $result = array(); $headers; if (count($lines) > 0) { $headers = $lines[0]; } for($i=1; $i<count($lines); $i++) { $obj = $lines[$i]