如何将json单Key/Value对转换成DataTable?

How to transform json single Key/Value pairs into DataTable?

我有一个 json 字符串,其中包含 key/value 对。现在,我想将 key/value 对转换为 DataTableColumns (key,value)

以下是 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 行必须是:

Key          |  Value
wifi_result  |    1
mic_result   |    1

感谢帮助!

可以先反序列化成c#class,再转成数据表。

可以直接转到数据表,JSON.NET 例如:

DataTable dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));

为此您不需要数据表。其实就是一个Dictionary<string,string>

使用Json.Net

var  dict = JsonConvert.DeserializeObject<Dictionary<string,string>>(json);

现在你有 key/value 对。

如果DataTable是必须的,那么

var dt = JArray.FromObject(dict.Select(x => x)).ToObject<DataTable>();