我有一个json文件(文本),有908行值的数据,具有多个硬件类类型。反序列化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/为特定的json创建合适的C#类, 或者您可以使用edit-> paste special - >在您的Visual Studio中粘贴json As Classes。 –