парсинг строчки

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

парсинг строчки

Сообщение Invader » 29.10.2011 (Сб) 7:52

после post запроса я получаю динамическую переменную string следующего вида:
"{"status":0,"id":"a13eeda883ca258930baac345fcab907-1","hypotheses":[{"utterance":"этот текст только и нужен","confidence":0.5503715}]}" без кавычек.
стал вырезать излишек - {"status":0,"id":"a13eeda883ca258930baac345fcab907-1","hypotheses":[{"utterance":"
следующим методом
Код: Выделить всё
dim s as string
s="{"status":0,"id":"a13eeda883ca258930baac345fcab907-1","hypotheses":[{"utterance":"этот текст только и нужен","confidence":0.5503715}]}"
TextBox1.Text = Microsoft.Visualbasic.Left(s, 83)

но тег "ID" различную длину вызова! Да и не нашел чем вырезать правую часть -","confidence":0.5503715}]}

была идея отыскивать ":" и ";" , а после отсеивать с лева и справа соответственно. Но процесс будет скорее долгий да ещё и не ясный.
может кто знает другой более правильный способ
умён и жаден,
характер отсуствует

FireFenix
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1640
Зарегистрирован: 25.05.2007 (Пт) 10:24
Откуда: Mugen no Sora

Re: парсинг строчки

Сообщение FireFenix » 29.10.2011 (Сб) 13:33

1) Искать utterance":" и делать выборку до следующей кавычки
2) Regular Expressions
Птицей Гермеса меня называют, свои крылья пожирая... сам себя я укрощаю
私はヘルメスの鳥 私は自らの羽根を喰らい 飼い慣らされる

Sam777e
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 157
Зарегистрирован: 16.09.2010 (Чт) 4:33

Re: парсинг строчки

Сообщение Sam777e » 29.10.2011 (Сб) 13:50

Код: Выделить всё
' Специально расписал подробно; можно было обойтись одной строкой . . .

Sub A()
  Dim s As String, S1 As String, Kav As String, j As Long, jStart As Long, jEnd As Long
 
  Kav = Chr$(34)

's="{"  . . . eses":[{"utterance":"этот текст только и нужен","con . . . }"
 
  j = InStr(1, s, "utterance")  ' . . ."utterance":"этот текст только и нужен" . . .
'---------------------------------------^
 
  j = InStr(j + 1, s, Kav)      ' . . ."utterance":"этот текст только и нужен" . . .
'------------------------------------------------^
 
  j = InStr(j + 1, s, Kav)      ' . . ."utterance":"этот текст только и нужен" . . .
'--------------------------------------------------^
 
  jStart = j + 1                ' . . ."utterance":"этот текст только и нужен" . . .
'                                                   ^
'---------------------------------------------------^

  j = InStr(jStart, s, Kav)     ' . . ."utterance":"этот текст только и нужен" . . .
'----------------------------------------------------------------------------^
 
  jEnd = j - 1
 
  S1 = Mid$(s, jStart, jEnd - jStart + 1)
  Debug.Print "-"; S1; "+"
 
End Sub
   

Здоровья и удачи

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: парсинг строчки

Сообщение iGrok » 29.10.2011 (Сб) 16:05

А я бы лучше использовал нормальный парсер json...
label:
cli
jmp label

SaturnKZ
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 8
Зарегистрирован: 14.10.2011 (Пт) 6:36

Re: парсинг строчки

Сообщение SaturnKZ » 29.10.2011 (Сб) 16:07

Код: Выделить всё
TextBox1.Text = Regex.Match(s, """utterance"":""(?<utterance>[^""]*)""").Groups("utterance").Value

Invader
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 285
Зарегистрирован: 18.01.2005 (Вт) 4:22
Откуда: Молдавия, Виноград

Re: парсинг строчки

Сообщение Invader » 29.10.2011 (Сб) 16:20

огромное спасибо Всем!
iGrok
iGrok писал(а):А я бы лучше использовал нормальный парсер json...
в моих примерах по которым я веду свой проект использовалось System.Runtime.Serialization.Json пример был на C# и после трассировки на vb.net код выдал массу ошибок, я к сожалению плохо в этом понимаю...

В целом у Всех замечательные примеры и советы, ещё раз спасибо
умён и жаден,
характер отсуствует


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10

    TopList