У меня есть json-файл (текст), который содержит 908 строк данных с несколькими типами аппаратного класса.Deserializing JSON-файлы
В каждой группе есть такие, где Свойства изменяются в зависимости от типа компонента.
"HardwareID": "ACPI\\AuthenticAMD_-_AMD64_Family_16_Model_4",
"Count": "8",
"Class": "Processor",
"Properties": { }
"DeviceType": "Cpu",
"Description": "Quad-Core AMD Opteron(tm) Processor 2373 EE"
Я считаю, что первая часть является открытый класс (т.е. устройств), что срывов, как структурирован файл в формате JSON. Это верно? Если да, то как добавить свойства?
После загрузки я могу десериализовать объект следующим образом.
Devices device = JsonConvert.DeserializeObject<Devices>(json);
Есть ли я на правильном пути? Это был мой план, поскольку я загружаю разные классы (т. Е.) [Т.е. Процессор, HDD и т. Д.], Чтобы загрузить их в определенный DataTable. После того, как файл был полностью оценен, выведите на экран различные DataTables в файл csv. Это даст мне возможность оценить различные компоненты.
namespace jsonReader
{
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
using Newtonsoft.Json;
[DataContract]
public class RootObject
{
public class Devices
{
public string HardwareId { get; set; }
public int Count { get; set; }
public string Class { get; set; }
public IList<string> Properties { get; set; }
public string DeviceType { get; set; }
public string Description { get; set; }
}
}
Вот как выглядит мой json-файл.
{
"Devices": [
{
"HardwareID": "ACPI\\AuthenticAMD_-_AMD64_Family_16_Model_4",
"Count": "8",
"Class": "Processor",
"Properties": {
"CPUIDBrandString": "Quad-Core AMD Opteron(tm) Processor 2373 EE",
"CPUIDString": "AuthenticAMD",
"CPUIDMultithreading": "1",
"CPUIDBrandID": "0",
"CPUIDExtFamily": "1",
"CPUIDExtModel": "0",
"CPUIDSteppingID": "2",
"CPUIDNumberOfCores": "0",
"CPUIDLogicalCPUCount": "4",
"CPUIDFamily": "15",
"CPUIDVMExt": "0",
"CPUCount": "8",
"CPUIDProcessorID": "1696726757271408450",
"IsNuma": "true",
"CPUIDType": "0",
"Cpu_Temperature": "0.000000",
"CPUIDCapable64bit": "1",
"CPUIDModel": "4"
},
"DeviceType": "Cpu",
"Description": "Quad-Core AMD Opteron(tm) Processor 2373 EE"
},
],
}
Вы можете использовать http://json2csharp.com/, чтобы сделать правильный класс C# для конкретного json, или вы можете использовать edit-> paste special -> Paste json As Classes внутри вашей Visual studio. –