Форум » [x]Harbour » Получение JSON » Ответить

Получение JSON

Allcome: Всем привет! Поставлена задача передать данные из базы на некий портал через JSON. К сожалению, никогда с этим не сталкивался. Если кто-то занимался таким, помогите пожалуйста!

Ответов - 27, стр: 1 2 All

SergKis: Allcome http://www.kresin.ru/hrbfaq_3.html#Doc13_12 поищите темы в поиске сайта по слову "json"

Allcome: SergKis, спасибо, поищу!!!

SergKis: посмотрите Changelog.txt в minigui там ссылки на примеры


Allcome: SergKis, посмотрю обязательно, спасибо

Haz: Allcome пишет: Поставлена задача передать данные из базы на некий портал через JSON Самый простой способ через OLE [pre2] cjSon := '{ "order": { "ID": "ASC" }, "start" : "'+ hb_ntoc(nStart) + '", "select": [ "*", "UF_*" ] }' cRet := PostJson( cUrl, cjSon ) Func PostJson( cUrl, cJson ) local oHttp := CreateObject( 'MSXML2.XMLHTTP' ) oHttp:Open( "POST", cUrl, .F. ) oHttp:SetRequestHeader( "Content-Type","application/json") oHttp:Send( cJson ) return oHttp:ResponseBody [/pre2] PostJson() можно на hb_tip() сделать если тот что выше будет капризничать PS. сам Json или строкой делаем или через hash, например пишем запись в json [pre2] Func Rec2JSON() LOCAL n := 0 LOCAL aFields LOCAL cJson := "" LOCAL aH := hb_Hash() for n := 1 TO Fcount() aH[FieldName(n)] := FieldGet(n) end cJson := hb_JsonEncode( aH ) Return cJson [/pre2]

Allcome: Haz, благодарствую!

Allcome: Я получил json строку. А как её посмотреть, отправить и получить ответ? Помогите, пожалуйста, товарищи!!!

Dima: Allcome пишет: Я получил json строку. А как её посмотреть ? Hb_valtoexp(json)

Allcome: Dima, спасибо!

Allcome: Прошу помощи! При добавлении в сборку библиотеки выдаётся следующее d:/HB/HB30/lib/win/mingw/libhbcurls.a(core.o):core.c:(.text+0x438c): undefined reference to `curl_easy_getinfo' и так по каждой функции

Dima: Allcome Видимо HBCURL собрал не правильно У меня батник такой и живет в ....core-master\contrib\hbcurl\ [pre2] set PATH=%PATH%;C:\MinGW\bin;c:\hb32mingw\bin\ set HB_WITH_CURL=c:\curl\7791\include set HB_STATIC_CURL=yes c:\hb32mingw\bin\hbmk2 hbcurl [/pre2]

Dima: После сборки получим libhbcurl.a libhbcurls.a liblibcurl.a которые ложим в папку ...lib\win\mingw\ там где живет MINGW И 2 либы из поставки LIBCURL (libcurl.a libcurl.dll.a ) так же ложим туда же Свежий libcurl.dll ложим в папку со свей прогой

Dima: Dima пишет: там где живет MINGW Очепятка в папку Harbour

Allcome: Спасибо Дима! Буду делать сейчас.

Allcome: Dima, вопрос в догонку. У меня нет файла hbcurl.prg. Где его взять? Подскажи пожалуйста.

Dima: Allcome пишет: У меня нет файла hbcurl.prg. Где его взять? Подскажи пожалуйста А откуда он вдруг нарисовался ? Cтандартно в сырцах живут: core.c hbcurl.ch hbcurl.hbc hbcurl.hbm hbcurl.hbp hbcurls.hbp hbcurl.hbx Сырцы Harbour можно взять по первой ссылке в Теме

Allcome: Не идёт всё равно d:\HB\HB30\contrib\hbcurl>0 d:\HB\HB30\contrib\hbcurl>set PATH=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem; C:\Windows\System32\WindowsPowerShell\v1.0\;D:\hwgui\include\;D:\hwgui\lib\; d:\hb\db30\bin;:\HB\HB30\bin;c:\hb32mingw\bin\ d:\HB\HB30\contrib\hbcurl>set HB_WITH_CURL=d:\HB\HB30\include\ d:\HB\HB30\contrib\hbcurl>set HB_STATIC_CURL=yes d:\HB\HB30\contrib\hbcurl>d:\HB\HB30\bin\hbmk2 hbcurl hbmk2: Building sub-project (level 2): hbcurls.hbp hbmk2: Error: Missing dependency: curl

Dima: Так где же живет Harbour ? Тут c:\hb32mingw или тут d:\HB\HB30 Allcome пишет: ;:\HB\HB30\bin Буквы еще по ходу не хватает Allcome пишет: d:\HB\HB30\bin\hbmk2 Это под Borland что ли сборка ?

Dima: Allcome пишет: set HB_WITH_CURL=d:\HB\HB30\include\ Dima пишет: set HB_WITH_CURL=c:\curl\7791\include Уверен что дистриб CURL живет именно тут d:\HB\HB30\include\ ? У меня последний я тут поселил и его качнуть надо по ходу c:\curl\7791\ Тут брать https://curl.se/windows/dl-7.79.1/curl-7.79.1-win32-mingw.zip

Allcome: Спасибо за подсказку. Следующая ошибка: d:\HB\HB30\contrib\hbcurl>set HB_WITH_CURL=d:\hb\curl\include\ d:\HB\HB30\contrib\hbcurl>set HB_STATIC_CURL=yes d:\HB\HB30\contrib\hbcurl>d:\HB\HB30\bin\hbmk2 hbcurl hbmk2: Building sub-project (level 2): hbcurls.hbp hbmk2: Dependency 'curl' found: d:\hb\curl\include hbmk2: Compiling Harbour sources... Harbour 3.0.0 (Rev. 16951) Copyright (c) 1999-2011, http://harbour-project.org/ Compiling 'hbcurl.hbx'... Lines 50, Functions/Procedures 1 Generating C source output to '.hbmk\win\bcc\hbcurls\hbcurl.c'... Done. hbmk2: Compiling... .hbmk\win\bcc\hbcurls\hbcurl.c: core.c: Error E2139 core.c 119: Declaration missing ; Error E2451 core.c 530: Undefined symbol 'pHash' in function PHB_CURL_free Error E2451 core.c 532: Undefined symbol 'pHash' in function PHB_CURL_free Error E2451 core.c 533: Undefined symbol 'pHash' in function PHB_CURL_free *** 4 errors in Compile *** hbmk2: Error: Running C/C++ compiler. 1 bcc32.exe -c -q -d -6 -O2 -OS -Ov -Oi -Oc -DCURL_STATICLIB -DHBMK_HAS_CURL -tWM -w -Q -w-sig- -n.hbmk\win\bcc\hbcurls -Ic:\Borland\BCC55\Include -Id:\HB\HB30\i nclude -Id:\hb\curl\include .hbmk\win\bcc\hbcurls\hbcurl.c core.c Что со мной не так?

Dima: Allcome пишет: Что со мной не так? При чем тут BCC ? Сборка должна быть выполнена под компилятор MINGW и Harbour собранный им же

Allcome: Подправил пути, но всё равно ошибки. d:\HB\HB30\contrib\hbcurl>set HB_WITH_CURL=d:\hb\curl\include\ d:\HB\HB30\contrib\hbcurl>set HB_STATIC_CURL=yes d:\HB\HB30\contrib\hbcurl>d:\HB\HB30\bin\hbmk2 hbcurl hbmk2: Building sub-project (level 2): hbcurls.hbp hbmk2: Dependency 'curl' found: d:\hb\curl\include hbmk2: Compiling... ../../../../core.c:119:4: error: expected specifier-qualifier-list before 'PHB_HASH_TABLE' ../../../../core.c: In function 'PHB_CURL_free': ../../../../core.c:530:15: error: 'struct _HB_CURL' has no member named 'pHash' ../../../../core.c:532:32: error: 'struct _HB_CURL' has no member named 'pHash' ../../../../core.c:533:14: error: 'struct _HB_CURL' has no member named 'pHash' hbmk2: Error: Running C/C++ compiler. 1 gcc.exe -c -O3 -march=i586 -mtune=pentiumpro -fomit-frame-pointer -DCURL_STATIC LIB -DHBMK_HAS_CURL -W -Wall -pipe -Id:/HB/HB30/include -Id:/hb/curl/include ../ ../../../core.c

Dima: Allcome Еще раз внимательно смотрим батник что я дал [pre2] set PATH=%PATH%;C:\MinGW\bin;c:\hb32mingw\bin\ set HB_WITH_CURL=c:\curl\7791\include set HB_STATIC_CURL=yes c:\hb32mingw\bin\hbmk2 hbcurl [/pre2] Таким его и оставь НО подправив пути C:\MinGW дорога к компилятору MINGW c:\hb32mingw дорога к Harbour собранного под MINGW c:\curl\7791 дорога к распакованному дистрибутиву LIBCURL взятому ТУТ например Всё должно получиться

SergKis: Dima Там HB30 похоже

Dima: SergKis пишет: Там HB30 похоже По именам папок похоже так...

Allcome: Не желает собираться. Таже ошибка. Попробую harbour пересобрать, может в этом дело. Спасибо за помощь.

Dima: Allcome пишет: Попробую harbour пересобрать, может в этом дело Сырцы только свежие возьми и как соберешь номер версии (сборки) Harbour в студию



полная версия страницы