Http get retourne une liste d'objet json

Bonjour à tous,

Je débute en json et en language objet.

Je dois faire une requête http get afin de recevoir une liste d’assurance qui est une liste de json object

dans la requête HTTP Get ( url ; réponse {; nomsEnTêtes ; valeursEnTêtes}{; *} ) -> Résultat , je ne sais pas trop quoi mettre dans le type de la réponse.

un objet ?, un tableau d’objet ?, un texte ? un blob?

je vais recevoir une réponse de ce genre:

HTTP/1.1 200 OK
Content-Type: application/json
Date: Mon, 08 Aug 2016 15:10:46 GMT
[ {

“glnParticipant”: “7601003000000”,
“glnReceiver”: “7601003000000”,
“name”: “Maxi AG”,
“street”: “Postfach”,
“zipCode”: “8081”,
“town”: “Zürich”,
“lawTypes”: [1,5],
“bagNumber”: 1,
“tgTpChange”: true,
“additionalCosts”: false,
“maxReceive”: 20000000,
“notSupported”: [“application/x-fd-hospinv-req-v30+xml”], “tgAllowed”: false
}
{
“glnParticipant”: “7601003111111”,
“glnReceiver”: “760100311111”,
“name”: “Mini AG”,
“street”: “Postfach”,
“zipCode”: “6000”,
“town”: “Bern”,
“lawTypes”: [1,5],
“bagNumber”: 1,
“tgTpChange”: true,
“additionalCosts”: false,
“maxReceive”: 20000000,
“notSupported”: [“application/x-fd-hospinv-req-v30+xml”], “tgAllowed”: false
}
} ]

J’aimerais pouvoir remplir une listbox avec autant de colonne que de noms d’entêtes et y remplir les éléments dans chaque tableau

Je dois dire que je ne sais pas trop comment m’y prendre
quelqu’un aurait une idée

Merci à vous et de bonnes fêtes de fin d’année à tous

alain haerri

Salut,

Voici une requête qui reçoit un JSON qui sera transformé en objet:

<code 4D>
C_OBJECT($0;$O_Response)

C_OBJECT($1;$O_Payload)
$O_Payload:=$1

C_TEXT($T_URL)
$T_URL:=Storage_tablette .url

ARRAY TEXT($rT_headerName;0)
ARRAY TEXT($rT_headerValue;0)
APPEND TO ARRAY($rT_headerName;“Content-Type”)
APPEND TO ARRAY($rT_headerValue;“text/plain”)
APPEND TO ARRAY($rT_headerName;“User-agent”)
APPEND TO ARRAY($rT_headerValue;Storage_tablette .useragent)

C_TEXT($T_Body)
$T_Body:=“json=”+JSON Stringify($O_Payload)

C_LONGINT($coderesult)
C_TEXT($T_Response)
$coderesult:=HTTP Request(HTTP POST method;$T_URL;$T_Body;$T_Response;$rT_headerName;$rT_headerValue)
Case of
: ($coderesult=200)
$O_Response:=JSON Parse($T_Response)
Else
$O_Response:=New object
$O_Response.error:=$coderesult
$O_Response.message:=“erreur requête”
End case

$0:=$O_Response

// EOM
</code 4D>

Merci Bertrand,

Donc dans ton exemple la réponse est reçue dans un format texte que tu transformes en un objet.
Mais ne n’est-il pas possible de recevoir un objet directement dans la réponse de http get .

Ma deuxième question est: existe t’il un moyen simple de remplir les tableaux d’une listbox avec le résultat obtenu
Dans mon exemple
un tableau glnPartcipant avec glnPartcipant[0]=“7601003000000”
et glnPartcipant[1]=“7601003111111”

un autre tableau name avec name[0]=“Maxi AG”
et name[1]=“Mini AG”

etc

merci et bonne soirée

Alain Haerri

: Alain HAERRI

Donc dans ton exemple la réponse est reçue dans un format texte que
tu transformes en un objet.
Mais ne n’est-il pas possible de recevoir un objet directement dans
la réponse de http get .

Get ou Post, c’est l’autre en face qui te le dit. Pour le type de données reçu c’est celui qui est en face qui te le dit.

<code 4D>
C_TEXT($T_JSON)
$T_JSON:=JSON Stringify(New object(“test”;OB Get($O_Variable;“firstname”;Is text)+" "+String(Current time)))
HTTPD_SendBlob ($T_JSON;“application/json;charset=UTF-8”)

</code 4D>

Ici j’envoie un JSON et j’en informe le destinataire en précisant le https://developer.mozilla.org/fr/docs/Web/HTTP/Basics_of_HTTP/MIME_typesMime>

: Alain HAERRI

existe t’il un moyen simple de remplir les tableaux d’une listbox
avec le résultat obtenu

Remplit donc une listbox collection ou chacune des colonnes est une propriété de ton object reçu

Merci Bertrand,

ça m’aide beaucoup, je me mets tranquillement à lire la doc de la nouvelle version v17, il était temps me diras-tu!!

j’ai donc mis mon json dans une collection qui est rendue visible avec une listbox collection. C’est nickel

En gros je dois créer une interface Rest qui envoie des requêtes http pour reçevoir du Json.
Au moins maintenant je peux le lire.
Il faut que je bosse sur les requêtes que je n’ai jamais faites , je me bat avec les entêtes à mettre ou pas etc etc

Merci et belle fin d’année

alain

: Alain HAERRI

En gros je dois créer une interface Rest qui envoie des requêtes http
pour reçevoir du Json.

Je ne comprends pas : toi, tu ne fais que requêter vers un serveur pour avoir des informations. Si c’est bien ça, tu n’as pas d’interface à construire, juste une requête pour récupérer un résultat.

Les entêtes sont dans les deux tableaux: tu remplis ces tableaux et le serveur te renvoie des tableaux et le résultat dans la variable response

: Alain HAERRI

j’ai donc mis mon json dans une collection qui est rendue visible
avec une listbox collection.
Bonjour Alain,
il y a un utilitaire de visualisation json https://forums.4d.com/Post/FR/29142738/1/29142739#29142739ici>, au besoin.
Également disponible en mode obscur.

merci Arnaud
ça m’a l’air bien utile tout ça, c’est Noël
cool,
Alain

Oui Bertrand,
Je ne fais que récupérer ce que m’envoie le serveur, mais je dois aussi envoyer des fichiers multiparts.
J’étudie ,j’ étudie , step by step mais ça vient!!!
alain

: Alain HAERRI

Je ne fais que récupérer ce que m’envoie le serveur, mais je dois
aussi envoyer des fichiers multiparts.

Bon, disons que tu dois faire un upload :wink: