Вверх ↑
Этот топик читают: Гость
Ответов: 179
Рейтинг: 3
#1: 2021-05-14 15:54:36 ЛС | профиль | цитата
Добрый день, пожалуйста, есть ли у кого-то готовый компонент для работы с Json можете поделиться)
или если есть возможность подскажите как обработать json ответ web-сервера
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 146
Рейтинг: 22
#2: 2021-05-14 17:35:41 ЛС | профиль | цитата
hin4 писал(а):
если есть возможность подскажите как обработать json ответ web-сервера


Add(MainForm,15175452,175,133)
{
link(onCreate,4794102:doString,[])
}
Add(WinExec,11401622,287,133)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,16692353:doCharset,[])
}
Add(FormatStr,4794102,231,147)
{
Mask="Get-Date | Select-Object -Property * | ConvertTo-Json \r\nGet-Date | Select-Object -Property * | ConvertTo-Json | ConvertFrom-Json"
link(onFString,11401622:doConsoleExec,[])
}
Add(Memo,12542941,406,147)
{
Left=410
Top=150
Align=5
ScrollBars=3
}
Add(Charset,16692353,350,147)
{
link(onCharset,12542941:doAdd,[])
}

карма: 4

0
Ответов: 146
Рейтинг: 22
#3: 2021-05-15 12:09:34 ЛС | профиль | цитата
hin4, надеюсь, так будет понятней.
Add(MainForm,15175452,287,161)
{
link(onCreate,4794102:doString,[])
}
Add(WinExec,11401622,399,161)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,16692353:doCharset,[])
}
Add(FormatStr,4794102,343,175)
{
Mask="$response = Invoke-WebRequest -Uri "%1" -UseBasicParsin\r\n$json = ConvertFrom-Json -InputObject $response.Content\r\n$json.Date\r\n$valute = $json.Valute \r\n$valute.EUR | ft"
link(onFString,11401622:doConsoleExec,[])
link(Str1,11141527:Text,[])
}
Add(Memo,12542941,518,175)
{
Left=410
Top=150
Align=5
Font=[Lucida Console,8,0,0,204]
ScrollBars=3
}
Add(Charset,16692353,462,175)
{
link(onCharset,12542941:doAdd,[])
}
Add(VisualStrings,11141527,343,112)
{
Lines=#42:https://www.cbr-xml-daily.ru/daily_json.js|
Width=214
Height=25
}


Редактировалось 1 раз(а), последний 2021-05-15 12:21:30
карма: 4

0
Ответов: 146
Рейтинг: 22
#4: 2021-05-24 21:06:29 ЛС | профиль | цитата
Пример работы с JSON при помощи утилиты jq.exe (64 bit, у кого 32 скачивайте по ссылке в схеме).
Так как используется внешняя утилита архив со схемой выкладываю на Yandex disk.
https://disk.yandex.ru/d/44f66w-bYQx06Q
карма: 4

0
Ответов: 146
Рейтинг: 22
#5: 2021-05-25 06:10:49 ЛС | профиль | цитата
hin4 писал(а):
подскажите как обработать json ответ web-сервера

Пример парсинга JSON ответа на стандартных компонентах.

Add(MainForm,4719667,105,210)
{
Width=437
Height=548
Caption="Курсы валют ЦБР"
link(onCreate,9364295:doDownload,[])
}
Add(VisualStrings,11141527,175,161)
{
Lines=#42:https://www.cbr-xml-daily.ru/daily_json.js|
Width=214
Height=25
}
Add(MTStrTbl,8868118,756,280)
{
Width=421
Height=509
Align=5
Name="asd"
Columns=#10:Код валюты|15:Название валюты|23:Курс к рублю на сегодня|
link(CodePageSet,7188498:GetData,[])
}
Add(EventFromData,7188498,756,224)
{
link(onEvent,7941961:doReplace,[])
}
Add(Replace,7941961,805,224)
{
SubStr="""
link(onReplace,7188498:doData,[(844,230)(844,216)(746,216)(746,230)])
}
Add(HTTP_Get,9364295,175,224)
{
link(onDownload,8204234:doConvert,[])
link(onStop,8546763:doColAction,[(214,251)(214,293)])
link(URL,11141527:Text,[])
}
Add(StreamConvertor,8204234,231,231)
{
Mode=6
link(onResult,5872125:doCharset,[])
}
Add(BlockFind,14111853,371,231)
{
IncludeBlock=1
StartBlock=""Date": ""
EndBlock="","
link(onSearch,6668896:doString,[])
}
Add(Charset,5872125,280,231)
{
Type=7
link(onCharset,6162946:doEvent1,[])
}
Add(FormatStr,6668896,420,231)
{
Mask="Курсы валют ЦБР на %1"
link(onFString,4719667:doCaption,[(459,237)(459,202)(95,202)(95,216)])
}
Add(Hub,6162946,336,231)
{
link(onEvent1,14111853:doSearch,[])
link(onEvent2,1221205:doSearch,[(361,244)(361,279)])
}
Add(BlockFind,1221205,371,273)
{
IncludeBlock=1
StartBlock="{"
EndBlock="}"
link(onSearch,1575706:doMultiBlockFind,[])
}
Add(MST_ColAction,8546763,231,287)
{
Action=9
MaxColWidth=1000
Index=-2
MSTControl="asd"
}
Add(MultiBlockFind,1575706,420,273)
{
Count=3
TagList="{**s} "CharCode": {**x} ,{**e} \r\n{**s} "Name": {**x} ,{**e} \r\n{**s} "Value": {**x} ,{**e}"
link(onResult1,10427479:doValue,[])
link(onResult2,9598334:doValue,[(501,286)(501,314)])
link(onResult3,15494458:doValue,[(494,293)(494,349)])
}
Add(Memory,15494458,525,343)
{
Default=String()
link(onData,4986666:doString,[(571,349)(571,391)(501,391)(501,412)])
}
Add(FormatStr,4986666,511,406)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,15216109:doMT,[])
link(Str1,10427479:Value,[])
link(Str2,9598334:Value,[])
link(Str3,15494458:Value,[])
}
Add(Memory,9598334,518,308)
{
Default=String()
}
Add(Memory,10427479,511,273)
{
Default=String()
}
Add(MST_RowAction,11877015,637,399)
{
MSTControl="asd"
}
Add(MT_String,15216109,588,399)
{
link(onResult,11877015:doRowAction,[])
}

карма: 4

0
Ответов: 146
Рейтинг: 22
#6: 2021-05-28 18:48:51 ЛС | профиль | цитата
«И тут Остапа понесло...»

Наверное, самый маленький парсер json ответа веб-сервера.

Add(MainForm,15175452,147,147)
{
Visible=1
link(onCreate,4794102:doString,[])
}
Add(WinExec,11401622,259,147)
{
FileName="powershell"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(doConsoleInput)
Point(onConsoleTerminate)
link(onConsoleTerminate,15175452:doClose,[(298,167)(298,202)(137,202)(137,174)])
}
Add(FormatStr,4794102,203,161)
{
DataCount=1
Mask="$response = Invoke-WebRequest -Uri "%1" -UseBasicParsin\r\n$json = ConvertFrom-Json -InputObject $response.Content\r\n$valute = $json.Valute \r\n$valute.psobject.properties.value | Out-GridView -Title 'Json to table' -Wait\r\n\r\n"
link(onFString,11401622:doConsoleExec,[])
link(Str1,11141527:Text,[])
}
Add(VisualStrings,11141527,203,105)
{
Lines=#42:https://www.cbr-xml-daily.ru/daily_json.js|
Width=214
Height=25
}

В таблице можно установить фильтра на любой вкус. Также работает сортировка по столбцам.
Должна работать на всех windows10(на других не проверял.)
карма: 4

0
6
Сообщение
...
Прикрепленные файлы
(файлы не залиты)