【发布时间】:2019-08-31 06:17:23
【问题描述】:
我遇到了来自另一家公司的 Web 服务,它返回异常的 JSON 字符串。
这是 JSON 的样子:
["TERMINAL_NO","METER_NO","RAMZE_RAYANEH_SHENASE_GHABZ","PARVANDEH_ESHTERAK","POWER_UTILITY","CT_RATIO","PT_RATIO","NAME_","PART","CUSTOMER_ID","X_POS","Y_POS","DATE_NUM","HOUR_NUM","MONTH_","DAY_","YEAR_","DAY_WEEK","MONTH_DAY","DATE_HOUR","ACTIVE_ENERGY_PLUS_TOTAL","ACTIVE_ENERGY_PLUS_TARIF_1","ACTIVE_ENERGY_PLUS_TARIF_2","ACTIVE_ENERGY_PLUS_TARIF_3","ACTIVE_ENERGY_PLUS_TARIF_4","ACTIVE_ENERGY_MINUS_TOTAL","ACTIVE_ENERGY_MINUS_TARIF_1","ACTIVE_ENERGY_MINUS_TARIF_2","ACTIVE_ENERGY_MINUS_TARIF_3","ACTIVE_ENERGY_MINUS_TARIF_4","REACTIVE_ENERGY_PLUS_TOTAL","REACTIVE_ENERGY_PLUS_TARIF_1","REACTIVE_ENERGY_PLUS_TARIF_2","REACTIVE_ENERGY_PLUS_TARIF_3","REACTIVE_ENERGY_PLUS_TARIF_4","REACTIVE_ENERGY_MINUS_TOTAL","REACTIVE_ENERGY_MINUS_TARIF_1","REACTIVE_ENERGY_MINUS_TARIF_2","REACTIVE_ENERGY_MINUS_TARIF_3","REACTIVE_ENERGY_MINUS_TARIF_4","VOLTAGE_PHASE_A","VOLTAGE_PHASE_B","VOLTAGE_PHASE_C","CURRENT_PHASE_A","CURRENT_PHASE_B","CURRENT_PHASE_C","POWER_ACTIV_AVG","POWER_ACTIV_MIN","POWER_ACTIV_MAX","POWER_REACT_AVG","POWER_REACT_MIN","POWER_REACT_MAX","POWER_FACTOR_PHASE_A","POWER_FACTOR_PHASE_B","POWER_FACTOR_PHASE_C","READ_FLAG"],
["039530059094","039530059094","8448430104225","2420815","\u06a9\u0646\u062a\u0648\u0631\u0647\u0627\u06cc \u062f\u06cc\u0645\u0627\u0646\u062f\u06cc \u0627\u0633\u062a\u0627\u0646 \u062a\u0647\u0631\u0627\u0646","100\/5","1\/1","Ali Falahi","\u06af\u0644\u0633\u062a\u0627\u0646","2420815",null,null,"13980607","0","06","07","1398","\u067e\u0646\u062c \u0634\u0646\u0628\u0647","0607","0607.0",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"OFFLINE"],
["039530059094","039530059094","8448430104225","2420815","\u06a9\u0646\u062a\u0648\u0631\u0647\u0627\u06cc \u062f\u06cc\u0645\u0627\u0646\u062f\u06cc \u0627\u0633\u062a\u0627\u0646 \u062a\u0647\u0631\u0627\u0646","100\/5","1\/1","Ali Falahi","\u06af\u0644\u0633\u062a\u0627\u0646","2420815",null,null,"13980607","1","06","07","1398","\u067e\u0646\u062c \u0634\u0646\u0628\u0647","0607","0607.1",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"OFFLINE"]
第一行数据是列名,其余是数据。 既然我不能告诉他们改变他们的数据格式,我怎么能把它转换成类列表或任何类似具有相关列的键值对列表?
【问题讨论】:
-
你还不如使用 csv,这个 JSON 不是很有用,你将无法将它解析成有用的类(除了对象列表)。
-
这肯定不是有效的 JSON。正如@Hytam 建议的那样,我会使用 CsvHelper 等辅助类将其视为 CSV,但您首先需要读取字符串并删除额外的 [ ] 字符