Je veux créer un document texte de document suivant JSON:JSON au texte, séquence spéciale
[
{
"id": 12345,
"url": "https://www.w3schools.com",
"person": {
"firstname": "John",
"lastname": "Doe"
},
"department": "IT"
},
{
"id": 12346,
"url": "https://www.w3schools.com",
"person": {
"firstname": "Anna",
"lastname": "Jackson"
},
"department": "LOG"
}
]
Mon schéma JSON se présente comme suit:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer" },
"url": { "type": "string", "format": "uri" },
"person": {
"type": "object",
"properties": {
"firstname": { "type": "string" },
"lastname": { "type": "string" }
}
},
"department": { "enum": [ "IT", "LOG"] }
}
}
}
Le document de texte doit être structuré comme suit:
pid: 12345
dep-abb: IT
surname: Doe
name: John
pid: 12346
dep-abb: LOG
surname: Jackson
name: Anna
Je suis un débutant Perl et JSON et je cherchais un lib Perl qui peut donner cette approche en étendant le schéma (par ex. par txt_seq_no
et txt_label
). Les étiquettes dans le fichier texte doivent être triées par txt_seq_no
ASC et renommées par txt_label
. Est-il possible de résoudre ce problème aussi simple? Ensuite, le schéma pourrait ressembler à:
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": { "type": "integer", "txt_seq_no"=10, "txt_label"="pid" },
"url": { "type": "string", "format": "uri" },
"person": {
"type": "object",
"properties": {
"firstname": { "type": "string", "txt_seq_no"=40, "txt_label"="name" },
"lastname": { "type": "string", "txt_seq_no"=30, "txt_label"="surname" }
}
},
"department": { "enum": [ "IT", "LOG", "PROD" ], "txt_seq_no"=20, "txt_label"="dep-abb" }
}
}
}
Qu'avez-vous essayé? Quels problèmes avez-vous? S'il vous plaît nous montrer votre code. Si vous n'avez pas de code, Stack Overflow n'est probablement pas le bon endroit pour votre question. –
Vous avez deux tâches distinctes ici. L'une consiste à vérifier votre entrée JSON par rapport au schéma et l'autre à écrire un fichier texte. Avez-vous besoin d'aide avec les deux, ou juste un? Commencez par rechercher le schéma JSON sur le CPAN. Il y a plusieurs implémentations qui devraient toutes fonctionner. – simbabque
JSONSchema est uniquement destiné à valider des objets, pas à les transformer. Vous pouvez commencer avec une fonction qui prend un de vos objets JSON et la partie objet de votre JSONSchema et produit un nouvel objet de la forme '{'10_pid': ..., '20_dep-abb': ..., .. .} '. Aplatir un tableau de tels objets au format de votre texte devrait être facile alors. – Botje