c# - 如何使用 C# 将 DataTable 值转换为 json?

标签 c# json datatable json.net

我有一个包含 4 列的 DataTable(ID、测试名​​称、测试结果、IsValidRequest)。我想将 TestNameTestresult 转换为 json

enter image description here

string json = Newtonsoft.Json.JsonConvert.SerializeObject(dt);

变量“json”中的当前 JSON:

[  
   {  
      "TestID":1,
      "TestName":"wifi_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":7,
      "TestName":"mic_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":8,
      "TestName":"video_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":12,
      "TestName":"touch_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":14,
      "TestName":"proximity_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":15,
      "TestName":"vibrator_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":20,
      "TestName":"power_key",
      "TestResult":"2",
      "IsValidRequest":1
   },
   {  
      "TestID":21,
      "TestName":"accelerometer",
      "TestResult":"0",
      "IsValidRequest":1
   },
   {  
      "TestID":22,
      "TestName":"earphone",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":11,
      "TestName":"memory_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":29,
      "TestName":"memory_internalSD",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":30,
      "TestName":"memory_internalSDSize",
      "TestResult":"25.0GB",
      "IsValidRequest":1
   },
   {  
      "TestID":31,
      "TestName":"memory_externalSD",
      "TestResult":"0",
      "IsValidRequest":1
   },
   {  
      "TestID":32,
      "TestName":"memory_externalSDSize",
      "TestResult":"",
      "IsValidRequest":1
   },
   {  
      "TestID":33,
      "TestName":"memory_internalflash",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":34,
      "TestName":"memory_internalflashSize",
      "TestResult":"2.0GB",
      "IsValidRequest":1
   },
   {  
      "TestID":35,
      "TestName":"memory_ram",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":36,
      "TestName":"memory_ramsize",
      "TestResult":"2.0GB",
      "IsValidRequest":1
   },
   {  
      "TestID":13,
      "TestName":"lcd_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":28,
      "TestName":"lcd_broken",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":37,
      "TestName":"key_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":16,
      "TestName":"vol_key_up",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":17,
      "TestName":"vol_key_down",
      "TestResult":"0",
      "IsValidRequest":1
   },
   {  
      "TestID":18,
      "TestName":"menu_key",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":10,
      "TestName":"headset_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":38,
      "TestName":"headset_leftearphone",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":39,
      "TestName":"headset_rightearphone",
      "TestResult":"0",
      "IsValidRequest":1
   },
   {  
      "TestID":27,
      "TestName":"camera_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":40,
      "TestName":"camera_cameracount",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":5,
      "TestName":"camera_frontcam",
      "TestResult":"0",
      "IsValidRequest":1
   },
   {  
      "TestID":6,
      "TestName":"camera_backcam",
      "TestResult":"0",
      "IsValidRequest":1
   },
   {  
      "TestID":2,
      "TestName":"battery_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":45,
      "TestName":"battery_type",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":41,
      "TestName":"battery_level",
      "TestResult":"83",
      "IsValidRequest":1
   },
   {  
      "TestID":42,
      "TestName":"battery_status",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":43,
      "TestName":"battery_voltage",
      "TestResult":"4204",
      "IsValidRequest":1
   },
   {  
      "TestID":44,
      "TestName":"battery_temperature",
      "TestResult":"310",
      "IsValidRequest":1
   },
   {  
      "TestID":3,
      "TestName":"battery_accharging",
      "TestResult":"0",
      "IsValidRequest":1
   },
   {  
      "TestID":4,
      "TestName":"battery_usbcharging",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":9,
      "TestName":"audio_result",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":19,
      "TestName":"home_key",
      "TestResult":"1",
      "IsValidRequest":1
   },
   {  
      "TestID":46,
      "TestName":"back_key",
      "TestResult":"1",
      "IsValidRequest":1
   }
]

必需的 JSON:

{  
   "wifi_result":"1",
   "mic_result":"1",
   "video_result":"1",
   "touch_result":"1",
   "proximity_result":"1",
   "vibrator_result":"1",
   "power_key":"2",
   "accelerometer":"0",
   "earphone":"1",
   "memory_result":"1",
   "memory_internalSD":"1",
   "memory_internalSDSize":"25.0GB",
   "memory_externalSD":"0",
   "memory_externalSDSize":"",
   "memory_internalflash":"1",
   "memory_internalflashSize":"2.0GB",
   "memory_ram":"1",
   "memory_ramsize":"2.0GB",
   "lcd_result":"1",
   "lcd_broken":"1",
   "key_result":"1",
   "vol_key_up":"1",
   "vol_key_down":"0",
   "menu_key":"1",
   "headset_result":"1",
   "headset_leftearphone":"1",
   "headset_rightearphone":"0",
   "camera_result":"1",
   "camera_cameracount":"1",
   "camera_frontcam":"0",
   "camera_backcam":"0",
   "battery_result":"1",
   "battery_type":"1",
   "battery_level":"83",
   "battery_status":"1",
   "battery_voltage":"4204",
   "battery_temperature":"310",
   "battery_accharging":"0",
   "battery_usbcharging":"1",
   "audio_result":"1",
   "home_key":"1",
   "back_key":"1"
}

请提出任何解决方案?

最佳答案

先将DataTable转为Dictionary,再序列化为json。

Dictionary<string, string> dict = 
    dt.AsEnumerable()
    .ToDictionary<DataRow, string, string>(row => row.Field<string>(1),
                                           row => row.Field<string>(2));

string json = Newtonsoft.Json.JsonConvert.SerializeObject(dict);

关于c# - 如何使用 C# 将 DataTable 值转换为 json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31383093/

相关文章:

c# - 合并两个数据表

javascript - JQuery 数据表不工作

c# - Windows 运行时 : How to set image in a ellipse shape button?

c# - Windows 服务更改/删除注册表值

php - 拉拉维尔 : How do I parse this json data in view blade?

python - 简单尝试存储 json 后出现错误

c# - 传递空值时替代 .Equals()

c# - 如何删除xamarin形式的操作栏?

javascript - 如何映射不同 svg 组件的列表?

c# - 如何过滤数据表?