一、我們有一個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)哦,謝謝。