[英]How to add, delete, update, read only one entry in a JSON file?
问题。
1.如何添加、删除、更新、读取一个JSON文件中的一个条目?
2. 是否可以以编程方式从文件“SettingJson.json”中添加、删除条目?
描述。 我建议使用 JSON 文件来存储应用程序设置。
如何读写整个文件,我想通了。
如果我理解正确,那么:
删除:
1.从“Settings.cs”类中删除该属性;
2.从文件“SettingJson.json”中删除属性;
添加:
1.从“Settings.cs”类中添加一个属性;
2.从文件“SettingJson.json”中添加一个属性;
更新:
???
读:
???
设置.cs
namespace ConsoleApp
{
public class Settings
{
public string NameSetting1 { get; set; }
public string NameSetting2 { get; set; }
public string NameSetting3 { get; set; }
}
}
程序.cs
//
using Newtonsoft.Json;
using System.IO;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
Settings[] settings = new Settings[] { };
settings = FillArrayAll();
SaveDataArray(settings);
}
static Settings[] FillArrayAll()
{
Settings[] settings = new Settings[]
{
new Settings()
{
NameSetting1 = "ValueSetting_1",
NameSetting2 = "ValueSetting_2",
NameSetting3 = "ValueSetting_3"
}
};
return settings;
}
static Settings[] FillArrayOneItem()
{
Settings[] settings = new Settings[]
{
new Settings()
{
NameSetting2 = "ValueSetting_2",
}
};
return settings;
}
static void SaveDataArray(Settings[] settings)
{
string path = $"{Environment.CurrentDirectory}\\SettingsFolder\\SettingJson.json";
using (StreamWriter writer = File.CreateText(path))
{
string output = JsonConvert.SerializeObject(settings);
writer.Write(output);
}
}
public Settings[] ReadData()
{
string path = $"{Environment.CurrentDirectory}\\SettingsFolder\\SettingJson.json";
using (var reader = File.OpenText(path))
{
var fileText = reader.ReadToEnd();
return JsonConvert.DeserializeObject<Settings[]> (fileText);
}
}
}
}
基于答案中的材料Pavel Anikhouski - 2020-02-28 16: 16
如何制作单独的方法?
“写”方法。
获取:
SettingJson.json
路径。 施行:
- 将数据写入SettingJson.json
。
阅读方法。
获取:
- 钥匙(一把钥匙或一组钥匙);
- 文件SettingJson.json
路径。
施行:
- 从SettingJson.json
读取数据。
返回:
- 键值(值或值的集合)。
您可以使用Json.Linq与 json 进行操作,例如使用FromObject
方法从Settings
创建JObject
并使用它进行操作
var settings = FillArrayAll();
//create JObject from settings
var created = JObject.FromObject(new { settings });
//convert to json
var json = created.ToString();
//write json to a file
//…
//read it back
var updated = JObject.Parse(json);
//get value by key
var key = updated["settings"]?.FirstOrDefault()?["NameSetting1"];
//add new empty Settings to an array
(updated["settings"] as JArray)?.Add(JObject.FromObject(new Settings()));
//convert the updated object back to json
var resultJson = updated.ToString();
代码附近的注释应该很好解释。
您还可以在使用 LINQ 查询 JSON 、解析 JSON和创建 JSON 中找到一些详细信息
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.