【问题标题】:Deserialization of complex (nested) JSON to C# objects将复杂(嵌套)JSON 反序列化为 C# 对象
【发布时间】:2018-03-20 07:38:59
【问题描述】:

我一直致力于反序列化来自 API 的复杂 JSON 响应。我是 C# 和 .NET 的新手,所以我真的不知道如何继续。

我想做什么:

我想收集 JSON 响应中的所有项目并将它们放在键值对中,并将它们返回到控制台应用程序中的列表中以进行测试。

当我调试时它工作得非常好,我可以看到它按预期映射了所有键值对。我的斗争是在控制台应用程序的列表中返回所有内容。

这是我的“模型”类代码。

using System;

namespace ModelsClass
{

public class Rootobject
{
    public int code { get; set; }
    public string message { get; set; }
    public object profiling { get; set; }
    public int count { get; set; }
    public int skip { get; set; }
    public int limit { get; set; }
    public object next_page { get; set; }
    public object previous_page { get; set; }
    public Additional_Meta additional_meta { get; set; }
    public MeterData[] data { get; set; }
}

public class Additional_Meta
{
    public And[] and { get; set; }
}

public class And
{
    public bool deleted { get; set; }
    public Or[] or { get; set; }
}

public class Or
{
    public Holder_Id holder_id { get; set; }
    public RootHolder_Id rootholder_id { get; set; }
}

public class Holder_Id
{
    public string holderId { get; set; }
}

public class RootHolder_Id
{
    public string rootId { get; set; }
}

public class MeterData
{
    public string _id { get; set; }
    public string ean { get; set; }
    public object name { get; set; }
    public Holder holder { get; set; }
    public Root root { get; set; }
    public Assigner assigner { get; set; }
    public DateTime created { get; set; }
    public object[] children { get; set; }
    public string address { get; set; }
    public string timezone { get; set; }
    public string control_level { get; set; }
    public string billing_category { get; set; }
    public int generation { get; set; }
    public object[] tags { get; set; }
    public string box { get; set; }
    public bool revoked { get; set; }
    public string[] metrics { get; set; }
    public string type { get; set; }
    public Consumption_Stats consumption_stats { get; set; }
    public object readings_stats { get; set; }
    public bool has_active_complaints { get; set; }
    public object representation { get; set; }
    public object open_channel_ids { get; set; }
    public object on_hold { get; set; }
    public object last_sla_comment { get; set; }
    public object location { get; set; }
    public object[] meter_readers { get; set; }
    public int collection_window { get; set; }
    public object memo { get; set; }
}

public class Holder
{
    public string _id { get; set; }
    public string name { get; set; }
    public string username { get; set; }
}

public class Root
{
    public string _id { get; set; }
    public Holder1 holder { get; set; }
}

public class Holder1
{
    public string _id { get; set; }
    public string name { get; set; }
    public string entity_type { get; set; }
}

public class Assigner
{
    public string _id { get; set; }
    public string name { get; set; }
    public string username { get; set; }
    public Manager manager { get; set; }
}

public class Manager
{
    public object _id { get; set; }
}

public class Consumption_Stats
{
    public Energy energy { get; set; }
}

public class Energy
{
    public Hour hour { get; set; }
    public Day day { get; set; }
    public Month month { get; set; }
}

public class Hour
{
    public string count { get; set; }
    public string sum { get; set; }
    public string max { get; set; }
    public string last { get; set; }
    public string min { get; set; }
    public string first { get; set; }
}

public class Day
{
    public string count { get; set; }
    public string sum { get; set; }
    public string max { get; set; }
    public string last { get; set; }
    public string min { get; set; }
    public string first { get; set; }
}

public class Month
{
    public string count { get; set; }
    public string sum { get; set; }
    public string max { get; set; }
    public string last { get; set; }
    public string min { get; set; }
    public string first { get; set; }
}
}

这是我的“WriteLine”命令代码,用于尝试列出列表中的所有键值对。

using System;

class ConsoleAppClass
{
    static void Main()
    {
        string json2 = @"{""code"":200,""message"":""OK"",""profiling"":null,""count"":6,""skip"":0,""limit"":50,""next_page"":null,""previous_page"":null,""additional_meta"":{""$and"":[{""deleted"":false},{""$or"":[{""holder_id"":{""$id"":""5543677f37c6b65f008b46e4""}},{""root.holder._id"":{""$id"":""5543677f37c6b65f008b46e4""}}]}]},""data"":[{""_id"":""5825c6f6de22ae00632e86f3"",""ean"":""659842"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""5824790e3d214b006271c515"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:26:14+0000"",""children"":[],""address"":""Kungsgatan 2"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""heat"",""consumption_stats"":{""energy"":{""hour"":{""count"":26275,""sum"":6546140,""max"":930,""last"":2016123021,""min"":0,""first"":2014010101},""day"":{""count"":1091,""sum"":6522120,""max"":18900,""last"":20161229,""min"":1180,""first"":20140102},""month"":{""count"":33,""sum"":5727310,""max"":387190,""last"":201708,""min"":49750,""first"":201402}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c76920fe9b006308e412"",""ean"":""735999999564879216"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""5824790e3d214b006271c510"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:28:09+0000"",""children"":[],""address"":""Kungsgatan 2"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""electricity"",""consumption_stats"":{""energy"":{""hour"":{""count"":25953,""sum"":311714.628,""max"":34.3,""last"":2016121709,""min"":0,""first"":2014010101},""day"":{""count"":1080,""sum"":311302.328,""max"":689,""last"":20161216,""min"":141.1,""first"":20140102},""month"":{""count"":35,""sum"":306915.54,""max"":13704.72,""last"":201708,""min"":6013.932,""first"":201402}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c84b22c8aa00623d65a5"",""ean"":""6934363"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b4672"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:31:55+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""gas"",""consumption_stats"":{""energy"":{""month"":{""count"":24,""sum"":42656.62,""max"":8890.65,""last"":201708,""min"":104.57,""first"":201501},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c85320fe9b006308e41d"",""ean"":""5896584"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b466c"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:32:03+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""heat"",""consumption_stats"":{""energy"":{""month"":{""count"":57,""sum"":3592320,""max"":173000,""last"":201709,""min"":2000,""first"":201301},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c85920fe9b0061547253"",""ean"":""735999666123123123"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b4669"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:32:09+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""electricity"",""consumption_stats"":{""energy"":{""month"":{""count"":45,""sum"":141604.36,""max"":6488.2,""last"":201709,""min"":1759.64,""first"":201401},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c85d22c8aa00606b9dd5"",""ean"":""1200004"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b466f"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:32:13+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""cooling"",""consumption_stats"":{""energy"":{""month"":{""count"":33,""sum"":902350,""max"":92560,""last"":201709,""min"":9730,""first"":201501},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null}]}";

        var items = JsonConvert.DeserializeObject<List<ModelsClass.Rootobject>>(json2);
         foreach (ModelsClass.Rootobject value in items)
         {
             Console.WriteLine(value, items);
         }
        Console.ReadKey();
    }
}

那么,谁能帮助我将我的所有键值对从模型类返回到命令行?

如您所见,JSON 响应对于混合对象和数组非常复杂。

【问题讨论】:

    标签: c# .net arrays json serialization


    【解决方案1】:

    您的 json 在语法上不正确(https://jsonlint.com/),据我所知,它不包含 ModelClass.Rootobject 的列表,而只是包含此类的对象。 试试下面的

        static void Main()
    {
        string json2 = @"{'code':200,'message':'OK','profiling':null,'count':6,'skip':0,'limit':50,'next_page':null,'previous_page':null,'additional_meta':{'$and':[{'deleted':false},{'$or':[{'holder_id':{'$id':'5543677f37c6b65f008b46e4'}},{'root.holder._id':{'$id':'5543677f37c6b65f008b46e4'}}]}]},'data':[{'_id':'5825c6f6de22ae00632e86f3','ean':'659842','name':null,'holder':{'_id':'5543677f37c6b65f008b46e4','name':'Example account','username':'someone@example.com'},'root':{'_id':'5824790e3d214b006271c515','holder':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','entity_type':'utility_provider'}},'assigner':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','username':'RobHarveyUtilityCompany-utility@example.com','manager':{'_id':null}},'created':'2016-11-11T13:26:14+0000','children':[],'address':'Kungsgatan 2','timezone':'Etc\/GMT-1','control_level':'shared','billing_category':'owned_meter_consumption','generation':1,'tags':[],'box':'active','revoked':false,'metrics':['energy'],'type':'heat','consumption_stats':{'energy':{'hour':{'count':26275,'sum':6546140,'max':930,'last':2016123021,'min':0,'first':2014010101},'day':{'count':1091,'sum':6522120,'max':18900,'last':20161229,'min':1180,'first':20140102},'month':{'count':33,'sum':5727310,'max':387190,'last':201708,'min':49750,'first':201402}}},'cost_stats':{},'readings_stats':null,'has_active_complaints':false,'representation':null,'open_channel_ids':null,'on_hold':null,'last_sla_comment':null,'location':null,'meta_data':{},'meter_readers':[],'collection_window':5,'memo':null},{'_id':'5825c76920fe9b006308e412','ean':'735999999564879216','name':null,'holder':{'_id':'5543677f37c6b65f008b46e4','name':'Example account','username':'someone@example.com'},'root':{'_id':'5824790e3d214b006271c510','holder':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','entity_type':'utility_provider'}},'assigner':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','username':'RobHarveyUtilityCompany-utility@example.com','manager':{'_id':null}},'created':'2016-11-11T13:28:09+0000','children':[],'address':'Kungsgatan 2','timezone':'Etc\/GMT-1','control_level':'shared','billing_category':'owned_meter_consumption','generation':1,'tags':[],'box':'active','revoked':false,'metrics':['energy'],'type':'electricity','consumption_stats':{'energy':{'hour':{'count':25953,'sum':311714.628,'max':34.3,'last':2016121709,'min':0,'first':2014010101},'day':{'count':1080,'sum':311302.328,'max':689,'last':20161216,'min':141.1,'first':20140102},'month':{'count':35,'sum':306915.54,'max':13704.72,'last':201708,'min':6013.932,'first':201402}}},'cost_stats':{},'readings_stats':null,'has_active_complaints':false,'representation':null,'open_channel_ids':null,'on_hold':null,'last_sla_comment':null,'location':null,'meta_data':{},'meter_readers':[],'collection_window':5,'memo':null},{'_id':'5825c84b22c8aa00623d65a5','ean':'6934363','name':null,'holder':{'_id':'5543677f37c6b65f008b46e4','name':'Example account','username':'someone@example.com'},'root':{'_id':'577fdd960c8a335c008b4672','holder':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','entity_type':'utility_provider'}},'assigner':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','username':'RobHarveyUtilityCompany-utility@example.com','manager':{'_id':null}},'created':'2016-11-11T13:31:55+0000','children':[],'address':'Gr\u00e4nsv\u00e4gen 12B','timezone':'Etc\/GMT-1','control_level':'shared','billing_category':'owned_meter_consumption','generation':1,'tags':[],'box':'active','revoked':false,'metrics':['energy'],'type':'gas','consumption_stats':{'energy':{'month':{'count':24,'sum':42656.62,'max':8890.65,'last':201708,'min':104.57,'first':201501},'hour':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0},'day':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0}}},'cost_stats':{},'readings_stats':null,'has_active_complaints':false,'representation':null,'open_channel_ids':null,'on_hold':null,'last_sla_comment':null,'location':null,'meta_data':{},'meter_readers':[],'collection_window':5,'memo':null},{'_id':'5825c85320fe9b006308e41d','ean':'5896584','name':null,'holder':{'_id':'5543677f37c6b65f008b46e4','name':'Example account','username':'someone@example.com'},'root':{'_id':'577fdd960c8a335c008b466c','holder':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','entity_type':'utility_provider'}},'assigner':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','username':'RobHarveyUtilityCompany-utility@example.com','manager':{'_id':null}},'created':'2016-11-11T13:32:03+0000','children':[],'address':'Gr\u00e4nsv\u00e4gen 12B','timezone':'Etc\/GMT-1','control_level':'shared','billing_category':'owned_meter_consumption','generation':1,'tags':[],'box':'active','revoked':false,'metrics':['energy'],'type':'heat','consumption_stats':{'energy':{'month':{'count':57,'sum':3592320,'max':173000,'last':201709,'min':2000,'first':201301},'hour':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0},'day':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0}}},'cost_stats':{},'readings_stats':null,'has_active_complaints':false,'representation':null,'open_channel_ids':null,'on_hold':null,'last_sla_comment':null,'location':null,'meta_data':{},'meter_readers':[],'collection_window':5,'memo':null},{'_id':'5825c85920fe9b0061547253','ean':'735999666123123123','name':null,'holder':{'_id':'5543677f37c6b65f008b46e4','name':'Example account','username':'someone@example.com'},'root':{'_id':'577fdd960c8a335c008b4669','holder':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','entity_type':'utility_provider'}},'assigner':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','username':'RobHarveyUtilityCompany-utility@example.com','manager':{'_id':null}},'created':'2016-11-11T13:32:09+0000','children':[],'address':'Gr\u00e4nsv\u00e4gen 12B','timezone':'Etc\/GMT-1','control_level':'shared','billing_category':'owned_meter_consumption','generation':1,'tags':[],'box':'active','revoked':false,'metrics':['energy'],'type':'electricity','consumption_stats':{'energy':{'month':{'count':45,'sum':141604.36,'max':6488.2,'last':201709,'min':1759.64,'first':201401},'hour':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0},'day':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0}}},'cost_stats':{},'readings_stats':null,'has_active_complaints':false,'representation':null,'open_channel_ids':null,'on_hold':null,'last_sla_comment':null,'location':null,'meta_data':{},'meter_readers':[],'collection_window':5,'memo':null},{'_id':'5825c85d22c8aa00606b9dd5','ean':'1200004','name':null,'holder':{'_id':'5543677f37c6b65f008b46e4','name':'Example account','username':'someone@example.com'},'root':{'_id':'577fdd960c8a335c008b466f','holder':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','entity_type':'utility_provider'}},'assigner':{'_id':'577fd0170c8a335c008b45fe','name':'Rob Harvey Utility Company','username':'RobHarveyUtilityCompany-utility@example.com','manager':{'_id':null}},'created':'2016-11-11T13:32:13+0000','children':[],'address':'Gr\u00e4nsv\u00e4gen 12B','timezone':'Etc\/GMT-1','control_level':'shared','billing_category':'owned_meter_consumption','generation':1,'tags':[],'box':'active','revoked':false,'metrics':['energy'],'type':'cooling','consumption_stats':{'energy':{'month':{'count':33,'sum':902350,'max':92560,'last':201709,'min':9730,'first':201501},'hour':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0},'day':{'first':null,'last':null,'sum':null,'max':null,'min':null,'count':0}}},'cost_stats':{},'readings_stats':null,'has_active_complaints':false,'representation':null,'open_channel_ids':null,'on_hold':null,'last_sla_comment':null,'location':null,'meta_data':{},'meter_readers':[],'collection_window':5,'memo':null}]}";
    
        var items = JsonConvert.DeserializeObject<ModelsClass.Rootobject>(json2);
         foreach (ModelsClass.Rootobject value in items)
         {
             Console.WriteLine(value, items);
         }
        Console.ReadKey();
    }
    

    【讨论】:

      【解决方案2】:

      1- 您应该从 json 文本中删除 $ 字符

      2- 根节点不是数组,这就是为什么要像这样改变反序列化操作

      JsonConvert.DeserializeObject<ConsoleApplication2.Rootobject>(json2);
      

      3- 您可以使用此函数打印名称-值对。

         private static void printPropertyNameValue(object obj, int intent)
          {
              foreach (var property in obj.GetType().GetProperties())
              {
                  if (!property.CanWrite)
                      continue;
      
                  var value = property.GetValue(obj);
      
                  if (value != null && value.GetType().IsArray)
                  {
                      Console.WriteLine("{0}{1}", "".PadLeft(intent, '-'), property.Name);
                      foreach (var item in ((Object[])value))
                      {
                          printPropertyNameValue(item, intent + 1);
                      }
                  }
                  else
                  {
                      if (value != null && (value.GetType()).IsClass)
                      {
                          Console.WriteLine("{0}{1}", "".PadLeft(intent, '-'), property.Name);
                          printPropertyNameValue(property.GetValue(obj), intent + 1);
                      }
                      else
                      {
                          Console.WriteLine("{0}{1}:{2}", "".PadLeft(intent, '-'), property.Name, value);
                      }
                  }
              }
          }
      

      4- 你的最终主函数如下所示:

          static void Main(string[] args)
          {
      
              string json2 = @"{""code"":200,""message"":""OK"",""profiling"":null,""count"":6,""skip"":0,""limit"":50,""next_page"":null,""previous_page"":null,""additional_meta"":{""and"":[{""deleted"":false},{""or"":[{""holder_id"":{""id"":""5543677f37c6b65f008b46e4""}},{""root.holder._id"":{""id"":""5543677f37c6b65f008b46e4""}}]}]},""data"":[{""_id"":""5825c6f6de22ae00632e86f3"",""ean"":""659842"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""5824790e3d214b006271c515"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:26:14+0000"",""children"":[],""address"":""Kungsgatan 2"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""heat"",""consumption_stats"":{""energy"":{""hour"":{""count"":26275,""sum"":6546140,""max"":930,""last"":2016123021,""min"":0,""first"":2014010101},""day"":{""count"":1091,""sum"":6522120,""max"":18900,""last"":20161229,""min"":1180,""first"":20140102},""month"":{""count"":33,""sum"":5727310,""max"":387190,""last"":201708,""min"":49750,""first"":201402}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c76920fe9b006308e412"",""ean"":""735999999564879216"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""5824790e3d214b006271c510"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:28:09+0000"",""children"":[],""address"":""Kungsgatan 2"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""electricity"",""consumption_stats"":{""energy"":{""hour"":{""count"":25953,""sum"":311714.628,""max"":34.3,""last"":2016121709,""min"":0,""first"":2014010101},""day"":{""count"":1080,""sum"":311302.328,""max"":689,""last"":20161216,""min"":141.1,""first"":20140102},""month"":{""count"":35,""sum"":306915.54,""max"":13704.72,""last"":201708,""min"":6013.932,""first"":201402}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c84b22c8aa00623d65a5"",""ean"":""6934363"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b4672"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:31:55+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""gas"",""consumption_stats"":{""energy"":{""month"":{""count"":24,""sum"":42656.62,""max"":8890.65,""last"":201708,""min"":104.57,""first"":201501},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c85320fe9b006308e41d"",""ean"":""5896584"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b466c"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:32:03+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""heat"",""consumption_stats"":{""energy"":{""month"":{""count"":57,""sum"":3592320,""max"":173000,""last"":201709,""min"":2000,""first"":201301},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c85920fe9b0061547253"",""ean"":""735999666123123123"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b4669"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:32:09+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""electricity"",""consumption_stats"":{""energy"":{""month"":{""count"":45,""sum"":141604.36,""max"":6488.2,""last"":201709,""min"":1759.64,""first"":201401},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null},{""_id"":""5825c85d22c8aa00606b9dd5"",""ean"":""1200004"",""name"":null,""holder"":{""_id"":""5543677f37c6b65f008b46e4"",""name"":""Example account"",""username"":""someone@example.com""},""root"":{""_id"":""577fdd960c8a335c008b466f"",""holder"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""entity_type"":""utility_provider""}},""assigner"":{""_id"":""577fd0170c8a335c008b45fe"",""name"":""Rob Harvey Utility Company"",""username"":""RobHarveyUtilityCompany-utility@example.com"",""manager"":{""_id"":null}},""created"":""2016-11-11T13:32:13+0000"",""children"":[],""address"":""Gr\u00e4nsv\u00e4gen 12B"",""timezone"":""Etc\/GMT-1"",""control_level"":""shared"",""billing_category"":""owned_meter_consumption"",""generation"":1,""tags"":[],""box"":""active"",""revoked"":false,""metrics"":[""energy""],""type"":""cooling"",""consumption_stats"":{""energy"":{""month"":{""count"":33,""sum"":902350,""max"":92560,""last"":201709,""min"":9730,""first"":201501},""hour"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0},""day"":{""first"":null,""last"":null,""sum"":null,""max"":null,""min"":null,""count"":0}}},""cost_stats"":{},""readings_stats"":null,""has_active_complaints"":false,""representation"":null,""open_channel_ids"":null,""on_hold"":null,""last_sla_comment"":null,""location"":null,""meta_data"":{},""meter_readers"":[],""collection_window"":5,""memo"":null}]}";
      
              var items = JsonConvert.DeserializeObject<ConsoleApplication2.Rootobject>(json2);
      
              printPropertyNameValue(items, 0);
      
              Console.ReadKey();
          }
      

      【讨论】:

        【解决方案3】:

        从你的类中获取所有类型和属性 类似下面的东西

        Dictionary<string, string> myDict = new Dictionary<string, string>();
        Type t = data.GetType();
        
            foreach (PropertyInfo pi in t.GetProperties())
            {
                myDict[pi.Name] = pi.GetValue(data,null).ToString();   
            }
        

        【讨论】:

          【解决方案4】:

          (因字数限制单独发帖)

          如果您想查看格式化的 JSON 示例响应,请参见下方:

              {  
             "code":200,
             "message":"OK",
             "profiling":null,
             "count":6,
             "skip":0,
             "limit":50,
             "next_page":null,
             "previous_page":null,
             "additional_meta":{  
                "$and":[  
                   {  
                      "deleted":false
                   },
                   {  
                      "$or":[  
                         {  
                            "holder_id":{  
                               "$id":"5543677f37c6b65f008b46e4"
                            }
                         },
                         {  
                            "root.holder._id":{  
                               "$id":"5543677f37c6b65f008b46e4"
                            }
                         }
                      ]
                   }
                ]
             },
             "data":[  
                {  
                   "_id":"5825c6f6de22ae00632e86f3",
                   "ean":"659842",
                   "name":null,
                   "holder":{  
                      "_id":"5543677f37c6b65f008b46e4",
                      "name":"Example account",
                      "username":"someone@example.com"
                   },
                   "root":{  
                      "_id":"5824790e3d214b006271c515",
                      "holder":{  
                         "_id":"577fd0170c8a335c008b45fe",
                         "name":"Rob Harvey Utility Company",
                         "entity_type":"utility_provider"
                      }
                   },
                   "assigner":{  
                      "_id":"577fd0170c8a335c008b45fe",
                      "name":"Rob Harvey Utility Company",
                      "username":"RobHarveyUtilityCompany-utility@example.com",
                      "manager":{  
                         "_id":null
                      }
                   },
                   "created":"2016-11-11T13:26:14+0000",
                   "children":[  
          
                   ],
                   "address":"Kungsgatan 2",
                   "timezone":"Etc\/GMT-1",
                   "control_level":"shared",
                   "billing_category":"owned_meter_consumption",
                   "generation":1,
                   "tags":[  
          
                   ],
                   "box":"active",
                   "revoked":false,
                   "metrics":[  
                      "energy"
                   ],
                   "type":"heat",
                   "consumption_stats":{  
                      "energy":{  
                         "hour":{  
                            "count":26275,
                            "sum":6546140,
                            "max":930,
                            "last":2016123021,
                            "min":0,
                            "first":2014010101
                         },
                         "day":{  
                            "count":1091,
                            "sum":6522120,
                            "max":18900,
                            "last":20161229,
                            "min":1180,
                            "first":20140102
                         },
                         "month":{  
                            "count":33,
                            "sum":5727310,
                            "max":387190,
                            "last":201708,
                            "min":49750,
                            "first":201402
                         }
                      }
                   },
                   "cost_stats":{  
          
                   },
                   "readings_stats":null,
                   "has_active_complaints":false,
                   "representation":null,
                   "open_channel_ids":null,
                   "on_hold":null,
                   "last_sla_comment":null,
                   "location":null,
                   "meta_data":{  
          
                   },
                   "meter_readers":[  
          
                   ],
                   "collection_window":5,
                   "memo":null
                },
                {  
                   "_id":"5825c76920fe9b006308e412",
                   "ean":"735999999564879216",
                   "name":null,
                   "holder":{  
                      "_id":"5543677f37c6b65f008b46e4",
                      "name":"Example account",
                      "username":"someone@example.com"
                   },
                   "root":{  
                      "_id":"5824790e3d214b006271c510",
                      "holder":{  
                         "_id":"577fd0170c8a335c008b45fe",
                         "name":"Rob Harvey Utility Company",
                         "entity_type":"utility_provider"
                      }
                   },
                   "assigner":{  
                      "_id":"577fd0170c8a335c008b45fe",
                      "name":"Rob Harvey Utility Company",
                      "username":"RobHarveyUtilityCompany-utility@example.com",
                      "manager":{  
                         "_id":null
                      }
                   },
                   "created":"2016-11-11T13:28:09+0000",
                   "children":[  
          
                   ],
                   "address":"Kungsgatan 2",
                   "timezone":"Etc\/GMT-1",
                   "control_level":"shared",
                   "billing_category":"owned_meter_consumption",
                   "generation":1,
                   "tags":[  
          
                   ],
                   "box":"active",
                   "revoked":false,
                   "metrics":[  
                      "energy"
                   ],
                   "type":"electricity",
                   "consumption_stats":{  
                      "energy":{  
                         "hour":{  
                            "count":25953,
                            "sum":311714.628,
                            "max":34.3,
                            "last":2016121709,
                            "min":0,
                            "first":2014010101
                         },
                         "day":{  
                            "count":1080,
                            "sum":311302.328,
                            "max":689,
                            "last":20161216,
                            "min":141.1,
                            "first":20140102
                         },
                         "month":{  
                            "count":35,
                            "sum":306915.54,
                            "max":13704.72,
                            "last":201708,
                            "min":6013.932,
                            "first":201402
                         }
                      }
                   },
                   "cost_stats":{  
          
                   },
                   "readings_stats":null,
                   "has_active_complaints":false,
                   "representation":null,
                   "open_channel_ids":null,
                   "on_hold":null,
                   "last_sla_comment":null,
                   "location":null,
                   "meta_data":{  
          
                   },
                   "meter_readers":[  
          
                   ],
                   "collection_window":5,
                   "memo":null
                },
                {  
                   "_id":"5825c84b22c8aa00623d65a5",
                   "ean":"6934363",
                   "name":null,
                   "holder":{  
                      "_id":"5543677f37c6b65f008b46e4",
                      "name":"Example account",
                      "username":"someone@example.com"
                   },
                   "root":{  
                      "_id":"577fdd960c8a335c008b4672",
                      "holder":{  
                         "_id":"577fd0170c8a335c008b45fe",
                         "name":"Rob Harvey Utility Company",
                         "entity_type":"utility_provider"
                      }
                   },
                   "assigner":{  
                      "_id":"577fd0170c8a335c008b45fe",
                      "name":"Rob Harvey Utility Company",
                      "username":"RobHarveyUtilityCompany-utility@example.com",
                      "manager":{  
                         "_id":null
                      }
                   },
                   "created":"2016-11-11T13:31:55+0000",
                   "children":[  
          
                   ],
                   "address":"Gr\u00e4nsv\u00e4gen 12B",
                   "timezone":"Etc\/GMT-1",
                   "control_level":"shared",
                   "billing_category":"owned_meter_consumption",
                   "generation":1,
                   "tags":[  
          
                   ],
                   "box":"active",
                   "revoked":false,
                   "metrics":[  
                      "energy"
                   ],
                   "type":"gas",
                   "consumption_stats":{  
                      "energy":{  
                         "month":{  
                            "count":24,
                            "sum":42656.62,
                            "max":8890.65,
                            "last":201708,
                            "min":104.57,
                            "first":201501
                         },
                         "hour":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         },
                         "day":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         }
                      }
                   },
                   "cost_stats":{  
          
                   },
                   "readings_stats":null,
                   "has_active_complaints":false,
                   "representation":null,
                   "open_channel_ids":null,
                   "on_hold":null,
                   "last_sla_comment":null,
                   "location":null,
                   "meta_data":{  
          
                   },
                   "meter_readers":[  
          
                   ],
                   "collection_window":5,
                   "memo":null
                },
                {  
                   "_id":"5825c85320fe9b006308e41d",
                   "ean":"5896584",
                   "name":null,
                   "holder":{  
                      "_id":"5543677f37c6b65f008b46e4",
                      "name":"Example account",
                      "username":"someone@example.com"
                   },
                   "root":{  
                      "_id":"577fdd960c8a335c008b466c",
                      "holder":{  
                         "_id":"577fd0170c8a335c008b45fe",
                         "name":"Rob Harvey Utility Company",
                         "entity_type":"utility_provider"
                      }
                   },
                   "assigner":{  
                      "_id":"577fd0170c8a335c008b45fe",
                      "name":"Rob Harvey Utility Company",
                      "username":"RobHarveyUtilityCompany-utility@example.com",
                      "manager":{  
                         "_id":null
                      }
                   },
                   "created":"2016-11-11T13:32:03+0000",
                   "children":[  
          
                   ],
                   "address":"Gr\u00e4nsv\u00e4gen 12B",
                   "timezone":"Etc\/GMT-1",
                   "control_level":"shared",
                   "billing_category":"owned_meter_consumption",
                   "generation":1,
                   "tags":[  
          
                   ],
                   "box":"active",
                   "revoked":false,
                   "metrics":[  
                      "energy"
                   ],
                   "type":"heat",
                   "consumption_stats":{  
                      "energy":{  
                         "month":{  
                            "count":57,
                            "sum":3592320,
                            "max":173000,
                            "last":201709,
                            "min":2000,
                            "first":201301
                         },
                         "hour":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         },
                         "day":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         }
                      }
                   },
                   "cost_stats":{  
          
                   },
                   "readings_stats":null,
                   "has_active_complaints":false,
                   "representation":null,
                   "open_channel_ids":null,
                   "on_hold":null,
                   "last_sla_comment":null,
                   "location":null,
                   "meta_data":{  
          
                   },
                   "meter_readers":[  
          
                   ],
                   "collection_window":5,
                   "memo":null
                },
                {  
                   "_id":"5825c85920fe9b0061547253",
                   "ean":"735999666123123123",
                   "name":null,
                   "holder":{  
                      "_id":"5543677f37c6b65f008b46e4",
                      "name":"Example account",
                      "username":"someone@example.com"
                   },
                   "root":{  
                      "_id":"577fdd960c8a335c008b4669",
                      "holder":{  
                         "_id":"577fd0170c8a335c008b45fe",
                         "name":"Rob Harvey Utility Company",
                         "entity_type":"utility_provider"
                      }
                   },
                   "assigner":{  
                      "_id":"577fd0170c8a335c008b45fe",
                      "name":"Rob Harvey Utility Company",
                      "username":"RobHarveyUtilityCompany-utility@example.com",
                      "manager":{  
                         "_id":null
                      }
                   },
                   "created":"2016-11-11T13:32:09+0000",
                   "children":[  
          
                   ],
                   "address":"Gr\u00e4nsv\u00e4gen 12B",
                   "timezone":"Etc\/GMT-1",
                   "control_level":"shared",
                   "billing_category":"owned_meter_consumption",
                   "generation":1,
                   "tags":[  
          
                   ],
                   "box":"active",
                   "revoked":false,
                   "metrics":[  
                      "energy"
                   ],
                   "type":"electricity",
                   "consumption_stats":{  
                      "energy":{  
                         "month":{  
                            "count":45,
                            "sum":141604.36,
                            "max":6488.2,
                            "last":201709,
                            "min":1759.64,
                            "first":201401
                         },
                         "hour":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         },
                         "day":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         }
                      }
                   },
                   "cost_stats":{  
          
                   },
                   "readings_stats":null,
                   "has_active_complaints":false,
                   "representation":null,
                   "open_channel_ids":null,
                   "on_hold":null,
                   "last_sla_comment":null,
                   "location":null,
                   "meta_data":{  
          
                   },
                   "meter_readers":[  
          
                   ],
                   "collection_window":5,
                   "memo":null
                },
                {  
                   "_id":"5825c85d22c8aa00606b9dd5",
                   "ean":"1200004",
                   "name":null,
                   "holder":{  
                      "_id":"5543677f37c6b65f008b46e4",
                      "name":"Example account",
                      "username":"someone@example.com"
                   },
                   "root":{  
                      "_id":"577fdd960c8a335c008b466f",
                      "holder":{  
                         "_id":"577fd0170c8a335c008b45fe",
                         "name":"Rob Harvey Utility Company",
                         "entity_type":"utility_provider"
                      }
                   },
                   "assigner":{  
                      "_id":"577fd0170c8a335c008b45fe",
                      "name":"Rob Harvey Utility Company",
                      "username":"RobHarveyUtilityCompany-utility@example.com",
                      "manager":{  
                         "_id":null
                      }
                   },
                   "created":"2016-11-11T13:32:13+0000",
                   "children":[  
          
                   ],
                   "address":"Gr\u00e4nsv\u00e4gen 12B",
                   "timezone":"Etc\/GMT-1",
                   "control_level":"shared",
                   "billing_category":"owned_meter_consumption",
                   "generation":1,
                   "tags":[  
          
                   ],
                   "box":"active",
                   "revoked":false,
                   "metrics":[  
                      "energy"
                   ],
                   "type":"cooling",
                   "consumption_stats":{  
                      "energy":{  
                         "month":{  
                            "count":33,
                            "sum":902350,
                            "max":92560,
                            "last":201709,
                            "min":9730,
                            "first":201501
                         },
                         "hour":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         },
                         "day":{  
                            "first":null,
                            "last":null,
                            "sum":null,
                            "max":null,
                            "min":null,
                            "count":0
                         }
                      }
                   },
                   "cost_stats":{  
          
                   },
                   "readings_stats":null,
                   "has_active_complaints":false,
                   "representation":null,
                   "open_channel_ids":null,
                   "on_hold":null,
                   "last_sla_comment":null,
                   "location":null,
                   "meta_data":{  
          
                   },
                   "meter_readers":[  
          
                   ],
                   "collection_window":5,
                   "memo":null
                }
             ]
          }
          

          【讨论】:

            【解决方案5】:

            上周我发布了一个关于将 JSON 对象展平为键值对的问题,Alexander Petrov 的回复确实帮助了我。问题是here。他的代码将处理任何结构的 JSON,因此如果您更改入站对象,代码仍会将其转储出去。可能对你有用,希望对你有帮助。

            【讨论】:

              猜你喜欢
              • 2018-10-25
              • 1970-01-01
              • 2016-12-12
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2021-12-20
              相关资源
              最近更新 更多