Esiste una maschera che descrive lo "standard" JSON?

1

Ho aderito a un progetto dove vendevamo servizi per diversi fornitori tramite app web, iOS e Android. Sto lavorando su iOS. Mi è stato chiesto di visualizzare un modulo di acquisto tramite una visualizzazione Web e reagire in base a quanto inserito in modo nativo. Lo faccio intercettando la comunicazione di rete ma, come puoi immaginare, è lenta, soggetta a errori e semplicemente stupida. Chiedo il motivo per cui deve essere fatto in questo modo, perché non riesco a ottenere i dati e rendere il modulo me stesso in modo nativo, e mi è stato detto che presto anche l'app per Android adatterà questa funzione e il modulo può leggermente cambiare per ogni fornitore quello sarebbe l'approccio più semplice.

Mentre sono d'accordo sul fatto che è più facile decidere sul server quali campi sono necessari per ogni chiamata, non penso che la conclusione logica sia quella di richiedere un modulo html e creare un'intercettazione hacker attorno ad esso.

Prima che l'implementazione per Android inizi voglio proporre un'altra opzione:

Invece di eseguire il rendering di un sito Web, voglio che il server crei un JSON per descrivere il modulo, che può essere facilmente utilizzato sul lato client per creare il modulo. Fondamentalmente un modello di visualizzazione generato dal server.

La mia domanda è: c'è già un "standard" su come dovrebbe essere un JSON simile?

Immagino qualcosa del genere

{
  "form": {
    "action": {
      "action-name": "Send",
      "method": "POST",
      "target": "https://api.mydomain.com/purchase/"
    },
    "fieldsets": [{
      "fieldset-name": "personal information",
      "fields": [{
        "field": {
          "kind": "text-field",
          "field-name": "First Name",
          "validator": {
            "validator-name": "regex-validator",
            "arguments": [{
              "regex": ".{3:}"
            }]
          },
          "optional": false
        }
      }, {
        "field": {
          "kind": "text-field",
          "field-name": "Last Name",
          "validator": {
            "validator-name": "regex-validator",
            "arguments": [{
              "regex": ".{3:}"
            }]
          },
          "optional": false
        }
      }, {
        "field": {
          "kind": "text-field",
          "field-name": "Email",
          "validator": {
            "validator-name": "email-validator"
          },
          "optional": false
        }
      }, {
        "field": {
          "kind": "text-field",
          "field-name": "Confirm Email",
          "validator": {
            "validator-name": "email-validator"
          },
          "optional": false
        }
      }]
    }, {
      "fieldset-name": "Credit Card Data",
      "fields": [{
        "field": {
          "kind": "text-field",
          "field-name": "Credit Card Number",
          "validator": {
            "validator-name": "creditcard-number-validator"
          },
          "optional": false
        }
      }]
    }]
  }
}
    
posta vikingosegundo 24.12.2014 - 16:49
fonte

1 risposta

2

Penso che lo standard che stai cercando sia Schema JSON . Non è specifico per i moduli, è una specifica più generale per definire l'aspetto di un particolare formato JSON (come uno schema XML). Esistono alcune soluzioni per la creazione di moduli con JSON Schema, come joshfire / jsonform .

    
risposta data 24.12.2014 - 17:12
fonte

Leggi altre domande sui tag