Je tente de convertir un fichier XML en JSON à l'aide de tables temporaires. Je peux extraire toutes les données de mon XML et les sauvegarder, mais je prends également un champ de relation supplémentaire qui n'est pas nécessaire pour moi. Je pourrais être aveugle mais je ne vois pas la solution pour cela.Progression 4GL: Exportation de XML dans JSON à l'aide de tables temporaires
SORTIE (JSON):
{"employees": {
"employee": [
{
"relation_id": null,
"id": 1,
"firstname": "aaa",
"lastname": "bbb",
"role": 1,
"photo": "smile.jpg"
},
{
"relation_id": null,
"id": 2,
"firstname": "ccc",
"lastname": "ddd",
"role": 1,
"photo": "smile.jpg"
},
{
"relation_id": null,
"id": 3,
"firstname": "www",
"lastname": "bbb",
"role": 0,
"photo": "smile.jpg"
},
{
"relation_id": null,
"id": 4,
"firstname": "kkk",
"lastname": "sdfsdf",
"role": 2,
"photo": "smile.jpg"
},
{
"relation_id": null,
"id": 5,
"firstname": "sdfsdf",
"lastname": "gsdg",
"role": 2,
"photo": "smile.jpg"
} ], "roles": [
{
"relation_id": null,
"role": [
{
"relation_id": null,
"id": 1,
"name": "Actor"
},
{
"relation_id": null,
"id": 2,
"name": "Student"
}
]
} ] }}
donc je veux supprimer tout le champ « relation_id » donc ma sortie est sans eux, mais je les ai besoin de faire des relations entre les tables temporaires à prendre toutes les données . Des idées?
Voici mon code.
DEFINE VARIABLE start AS LOGICAL NO-UNDO.
DEFINE VARIABLE zapisz AS LOGICAL NO-UNDO.
DEFINE VARIABLE typ AS CHARACTER NO-UNDO.
DEFINE VARIABLE doPliku AS CHARACTER NO-UNDO.
DEFINE VARIABLE wartosc AS LOGICAL NO-UNDO.
DEFINE TEMP-TABLE employee NO-UNDO XML-NODE-NAME "employee"
FIELD relation_id AS RECID XML-NODE-TYPE "Hidden"
FIELD id AS INTEGER
FIELD firstname AS CHARACTER
FIELD lastname AS CHARACTER
FIELD role AS INTEGER
FIELD photo AS CHARACTER.
DEFINE TEMP-TABLE roles NO-UNDO XML-NODE-NAME "roles"
FIELD relation_id AS RECID XML-NODE-TYPE "Hidden".
DEFINE TEMP-TABLE role NO-UNDO XML-NODE-NAME "role"
FIELD relation_id AS RECID XML-NODE-TYPE "Hidden"
FIELD id AS INTEGER
FIELD name AS CHARACTER.
DEFINE DATASET employees
FOR employees, employee, roles, role
DATA-RELATION dr3 FOR roles, role RELATION-FIELDS(relation_id, relation_id) NESTED.
start = DATASET employees:READ-XML("FILE","D:\USERS\DANIELH\zadanie testowe\relacje2_zmiana\testInputFile2.xml","APPEND", ?, ?, ?, ?).
ASSIGN
typ = "FILE"
doPliku = "D:\USERS\DANIELH\Zadanie testowe\relacje2_zmiana\ZadanieeeWOW.json"
wartosc = TRUE.
zapisz = DATASET employees:WRITE-JSON(typ, doPliku, wartosc).
Postez le XML que vous lisez à partir du disque. Aussi: votre code ne fonctionnera pas. Les employés de la table temporaire sont manquants dans le code. Aussi je suppose que vous devriez avoir des relations entre les employés -> employés -> rôles? Perpahs c'est dr1 et dr2? – Jensd