2015-07-27 1 views
-4

У меня есть строка json, которая содержит пары ключ/значение. Теперь я хочу, чтобы преобразовать key/value пары в DataTable с Columns(key,value)Как преобразовать json одиночные пары Key/Value в DataTable?

Ниже приводится 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 

Помогите оценить!

+0

возможно дубликат [Как преобразовать JSON в DataTable?] (Http://stackoverflow.com/questions/7641004/how-to-convert-json- в-datatable) – tharif

+0

hi @utility его не дубликат, вы можете видеть, что это простой json. Не Массив. –

+0

Что не так с этим вопросом? не знаю, почему люди продолжают голосование по крайней мере, они бы написали комментарий как причину или оставили поток, если не знают решения :( –

ответ

2

Вам не нужно DataTable для этого. На самом деле, это Dictionary<string,string>

Использование Json.Net

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

Теперь у вас есть пары ключ/значение.

Если DataTable является обязательным, то

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

Спасибо @Eser, это сработало для меня! :) –

0

Вы можете сначала десериализоваться в класс C#, а затем превратить его в datatable.

ИЛИ

можно перейти непосредственно к DataTable, с JSON.NET также учитывать:

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

Нет, ваш код десериализации не будет работать. – EZI

Смежные вопросы