2013-05-14 4 views
0

У меня есть строка данных, как показано ниже:Извлечение JSON данные из строки с использованием регулярных выражений

.... 
data=[{"CaseNo":1863,"CaseNumber":"RD14051315","imageFormat":"jpeg","ShiftID":241,"City":"Riyadh","ImageTypeID":2,"userId":20}] 
--5Qf7xJyP8snivHqYCPKMDJS-ZG0qde4OqIyIG 
Content-Disposition: form-data 
..... 

Я хочу, чтобы получить данные из JSON выше строки. Как я могу использовать регулярное выражение для поиска этой части строки? Я попытался найти indexOf ("data = [") и indexOf ("}]"), но он не работает нормально и правильно.

+2

Использование 'JSON.Net' - HTTP://james.newtonking.com/projects/json-net.aspx – LukeHennerley

+0

Его строка мусора и множество данных в строке. Я хочу получить строку только как часть json. –

+2

Как вы возвращаете эти данные? Кажется, что вы не читаете контент должным образом. – LukeHennerley

ответ

1

Я не совсем уверен, есть не лучший способ сделать это, однако следующее регулярное выражение строки вы должны получить данные, вам нужно:

// Define the Regular Expression, including the "data=" 
// but put the latter part (the part we want) in its own group 
Regex regex = new Regex(
    @"data=(\[{.*}\])", 
    RegexOptions.Multiline 
); 

// Run the regular expression on the input string 
Match match = regex.Match(input); 

// Now, if we've got a match, grab the first group from it 
if (match.Success) 
{ 
    // Now get our JSON string 
    string jsonString = match.Groups[1].Value; 

    // Now do whatever you need to do (e.g. de-serialise the JSON) 
    ... 

    } 
} 
+0

Я обновил этот пример, чтобы включить «данные =» в @ rmikh, чтобы гарантировать, что мы случайно не поймаем ничего! – KaraokeStu

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