C# 我可以使用一个json文件创建n个不同类的实例吗?
可以根据下面的示例创建2个Animal实例和3个Flower实例(基于单个json文件的数据) 示例代码:C# 我可以使用一个json文件创建n个不同类的实例吗?,c#,json,class,C#,Json,Class,可以根据下面的示例创建2个Animal实例和3个Flower实例(基于单个json文件的数据) 示例代码: class Nature { // do something with a specific json file class Animal { string id; bool isMammal; } class Flower { string id; int numberOfP
class Nature
{
// do something with a specific json file
class Animal
{
string id;
bool isMammal;
}
class Flower
{
string id;
int numberOfPetals;
}
}
预期结果:
一个x数量的动物实例
花的大量实例
附言:
x和y取决于从json文件获得的数据
我认为解决方法是创建一个包含json数据片段的.txt文件,而不是创建json文件。然后,将.txt文件的内容保存到变量中。最后,从该变量中选择每个json数据片段以单独使用它们,就像每个片段都是一个单独的json文件一样
但是,它是否有一种更简单的方法呢?您可以使用JSON结构而不是维护计数
{
"AnimalCollection" :
[
{ "id":"Animal-1", "IsMammal":true },
{ "id":"Animal-2", "IsMammal":true },
{ "id":"Animal-3", "IsMammal":true }
],
"FlowerCollection":
[
{ "id":"Flower-1", "numberOfPetals":30 },
{ "id":"Flower-2", "numberOfPetals":20 },
{ "id":"Flower-3", "numberOfPetals":10 },
{ "id":"Flower-4", "numberOfPetals":3 }
]
}
然后可以使用newtonsoft.json将其反序列化为以下类型
public class Data
{
public Animal[] AnimalCollection {get;set;}
public Flower[] FlowerCollection{get;set;
}
它将包含来自JSON的3个animal实例和4个flower实例
希望这有帮助。您可以加载JSON文件并将数据转换为datatable。创建新的动物和花卉列表 c代码如下:
//Declare typed list of Animals
List<Animal> AllAnimals = new List<Animal>();
//Declare typed list of Flowers
List<Flower> AllFlowers = new List<Flower>();
DataTable dt;
//Load JSON file data
using (StreamReader r = new StreamReader(JSONFilePath))
{
string json = r.ReadToEnd();
//convert JSON data to datatable
dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));
}
foreach(DataRow row in dt.Rows)
{
if (row[1].ToString() == "Animal")
{
Animal NewAnimal = new Animal();
NewAnimal.id = row[0].ToString();
NewAnimal.isMammal = row[2].ToString();
AllAnimals.Add(NewAnimal);
}
else
{
Flower NewFlower = new Flower();
NewFlower.id = row[0].ToString();
NewFlower.numberOfPetals = row[3].ToString();
AllFlowers.Add(NewFlower);
}
}
你能告诉我们你想做什么吗?从你的问题来看,你似乎不明白什么是序列化。也许我不明白^^,我花了一天时间寻找关于Json的教程。但是我只能找到一些基本的教程,这些教程展示了如何从json文件的数据实例化一个特定的类。但是我想要的是从单个json文件创建不同类的实例。正如我所说,我已经查找了各种教程、官方文档等,但我没有看到任何关于它的内容。那么,我应该假设这是不可能的吗?谢谢。如果我用我给出的例子来实现它,你的解决方案就会起作用。但不幸的是,情况并非如此^^^我打算实现此逻辑的代码将使用几十个类,每个类包含几十个或数百个变量。因此,很难在json文件^中的每个对象中描述它们。但无论如何,谢谢你,我以前没有考虑过这种解决方案,我可以肯定地将你的逻辑用于我系统的其他部分。谢谢。这是一个简单的方法。虽然不完全是我想要的解决方案^^^,但我认为我可以调整它以获得我想要的结果。再次感谢您。很高兴知道此解决方案对您有所帮助!
{
{
"id": "0",
"EntryType": "Animal",
"IsMamal": "True",
"numberOfPetals": ""
},
{
"id": "1",
"EntryType": "Animal",
"IsMamal": "True",
"numberOfPetals": ""
},
{
"id": "2",
"EntryType": "Flower",
"IsMamal": "",
"numberOfPetals": "8"
},
{
"id": "1",
"EntryType": "Flower",
"IsMamal": "",
"numberOfPetals": "6"
},
{
"id": "2",
"EntryType": "Flower",
"IsMamal": "",
"numberOfPetals": "10"
}
}