如何将json单Key/Value对转换成DataTable?
How to transform json single Key/Value pairs into DataTable?
我有一个 json
字符串,其中包含 key/value 对。现在,我想将 key/value
对转换为 DataTable
和 Columns
(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>();
我有一个 json
字符串,其中包含 key/value 对。现在,我想将 key/value
对转换为 DataTable
和 Columns
(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>();