2016-11-05 3 views
-1

У меня есть JSON-файл, как этотАнализировать JSON в C#

{ 
    "Value":{ 
     "9824800036":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9127801433":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9127801368":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9127801458":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9127801485":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9814008909":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9814008920":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9814008911":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9814008910":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9116665832":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9814008955":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     }, 
     "9116666000":{ 
     "TZ":0, 
     "AllowChange":3, 
     "InCall":true, 
     "OutCall":true, 
     "BeginDT":"00:00:00", 
     "EndDT":"23:59:59", 
     "Days":127 
     } 
    }, 
    "Success":true, 
    "Error":null, 
    "Failure":false 
} 

Как я могу получить

"9814008920","9814008911","9814008910","9116665832","9814008955"?

+0

Используйте библиотеку как [Json.NET] (http://www.newtonsoft.com/json) для разбора JSON в .NET объекты. –

+1

Этот json недействителен – Jim

+0

@ LasseV.Karlsen я использую Json.Net, но не понимаю, как я могу получить эти значения ... – ZZnOB

ответ

2

Я просто использовал Newtonsoft.Json и был в состоянии прочитать вашу JSON с помощью следующего кода:

string json = File.ReadAllText(pathToFile); 
dynamic jsonObj = JsonConvert.DeserializeObject(json); 
dynamic value = jsonObj["Value"]; 

foreach (var val in value) 
{ 
    Console.WriteLine(val.Name); 
} 

Вам нужно будет включать Microsoft.CSharp в качестве ссылки на ваш проект для этого компилировать.

1

Как указано, если у вас нет законного JSON, вам необходимо написать собственный парсер.

Это не так сложно сделать, но вы не предоставили достаточного определения ваших исходных файлов, чтобы я написал его для вас. Например, вы действительно опубликовали правильный JSON? Всегда ли оно начинается с "value", и сколько других вещей исправлено или может варьироваться?

+1

См. Обновленный вопрос, теперь json –

0

Альтернативное решение, если вы хотите использовать пользовательские синтаксический:

var source = File.ReadAllText(pathToFile); 
string pattern = @"""\d{10}"""; // Note: {10} wil match only 10 digit number   
var matches = Regex.Matches(source, pattern); 
foreach (var val in matches) 
    Console.WriteLine(val); 
Смежные вопросы