Ich habe eine JSON-Datei (Text) mit 908 Zeilen Daten mit mehreren Hardwareklassen.Deserialisieren von JSON-Dateien
Jede Gruppierung enthält diese, wobei Eigenschaften sich je nach Komponententyp ändern.
"HardwareID": "ACPI\\AuthenticAMD_-_AMD64_Family_16_Model_4",
"Count": "8",
"Class": "Processor",
"Properties": { }
"DeviceType": "Cpu",
"Description": "Quad-Core AMD Opteron(tm) Processor 2373 EE"
Ich glaube, der erste Teil zu einer öffentlichen Klasse ist (das heißt Devices), dass Störungen, wie die JSON-Datei strukturiert. Ist das richtig? Wenn ja, wie füge ich die Eigenschaften hinzu?
Dann einmal geladen, kann ich das Objekt in der folgenden Weise deserialisieren.
Devices device = JsonConvert.DeserializeObject<Devices>(json);
Bin ich auf dem richtigen Weg? Es war mein Plan, wie ich die verschiedenen Klassen laden Prozessor, Festplatte usw.], um sie in eine bestimmte DataTable zu laden. Sobald die Datei vollständig ausgewertet wurde, werden die verschiedenen DataTables an eine CSV-Datei ausgegeben. Dies gibt mir die Möglichkeit, die verschiedenen Komponenten zu bewerten.
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; }
}
}
Hier ist, wie meine JSON-Datei aussieht.
{
"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"
},
],
}
verwenden Sie besser http://json2csharp.com/, um die richtige C# -Klasse für bestimmte JSON, oder Sie können bearbeiten-> einfügen spezielle -> Einfügen von JSON als Klassen in Ihrem Visual Studio. –