我已经看了关于JSON和c#的所有问题,但我没有找到任何解决方案…我目前正在学习c#和对象/类语句,但我没有真正抓住如何使所有的东西一起工作…我没有真正抓住例如,当做一个覆盖,当声明一个方法私有而不是公共,当声明一个接口,当一个类…然而,我决定做一些例子……也许我能更好地理解这些东西是如何工作的……
在这种情况下(例如),我想通过类声明加载JSON,并为每个JSON对象创建一个对象(以下面这个例子,我发现周围的堆栈为例)!
这是我的Class:
public class Cars
{
public string Manufacturer { get; set; }
public string Model { get; set; }
public string Year { get; set; }
public string LicensePlate { get; set; }
public int KM { get; set; }
public bool Financing { get; set; }
public int Doors { get; set; }
public int Cost { get; set; }
}
这是我的JSON示例文件:
{
"1":
{
"Manufacturer": "Fiat",
"Model": "500",
"Year": "2017",
"LicensePlate": "AZ978AG",
"KM": 120000,
"Financing" : true,
"Doors" : 5,
"Cost" : 6000
}
,
"2":
{
"Manufacturer": "BMW",
"Model": "Serie 1",
"Year": "2019",
"LicensePlate": "BC978AG",
"KM": 150000,
"Financing" : false,
"Doors" : 3,
"Cost" : 12000
}
}
所以我想加载json,并翻译所有的
json_object
(如:"1","2")在C#_object
派生自"汽车"我该怎么做呢?有一种动态的方法,允许我创建n对象的数量没有声明它一个一个(就像在这种情况下:我有2 json对象,是否有某种方法检测多少json对象是在json文件和正确的距离动态对象的数量)?
一旦我正确设置了c#对象,我如何管理它?(例如,我想打印所有对象(具有所有属性),更改声明的属性之一(制造商,型号,年份…)的值或从文件
中删除其中的一个值)。
所以我想加载json,并翻译所有的json_object(如:"1","2")在c# _object派生自" car "我该怎么做呢?
下面的代码将Json反序列化成一个字典:
var cars = JsonConvert.DeserializeObject<Dictionary<string, Cars>>(carsJson);
一旦我正确设置了c#对象,我如何管理它?(例如,我想打印所有对象(具有所有属性),更改声明的属性之一(制造商,型号,年份…)的值或从文件
中删除其中的一个值)。
您可以添加、删除或更改字典中的值,然后将其序列化回文件:
cars["1"].Year = "2020";
cars["1"].LicensePlate = "GAB293C";
cars.Remove("2");
var newJson = JsonConvert.SerializeObject(cars);
输出:{
"1": {
"Manufacturer": "Fiat",
"Model": "500",
"Year": "2020",
"LicensePlate": "GAB293C",
"KM": 120000,
"Financing": true,
"Doors": 5,
"Cost": 6000
}
}