2017-08-29 2 views
0

Ich habe Daten im JSON-Format wie folgt aus:Möglichkeit, Array von Objekten mit 2 Werten in JSON ordentlich darzustellen?

"members": [ 
      "[email protected]", 
      "[email protected]", 
      "[email protected]##internalservicedomain.test.com##" 
     ] 

Ich möchte Rolle hinzufügen so:

admin is administrator 
user is member 
guest is guest 

Was ist der beste Weg, um es zu speichern?

Ich kann es wie folgt tun:

"members": [ 
       {name: "[email protected]", role: "administrator"}, 
       {name: "[email protected]", role: "member"}, 
       {name: "[email protected]##internalservicedomain.test.com##", role: "guest"} 
      ] 

Oder wie folgt aus:

"members": [ 
       "administrators": ["[email protected]"], 
       "users": ["[email protected]"], 
       "guests: ["[email protected]##internalservicedomain.test.com##"] 
      ] 

Aber Ich mag es nicht, diese Lösungen ist es eine nette Art und Weise, sie zu vertreten? Ich würde die erste Option bevorzugen, weil ich dann leichter durch die Elemente iterieren kann, aber der Overhead ist schrecklich und die zweite Option sieht besser aus, scheint aber kompliziert zu iterieren.

+0

Welche Sprache verwenden Sie, um die Daten zu lesen/schreiben? In einigen Sprachen ist das Speichern der 2. Option sehr einfach. d. h. foreach Member in Members ... Typ-Syntax ist ziemlich sauber. In JavaScript würde es ein wenig anders sein, aber ich stimme immer noch für Option Nummer 2 – luxdvie

+0

Wir verwenden Delphi's Object Pascal und einige Bibliotheken dafür. Ich denke, ich muss 2 Foreachs schreiben, um das zugrunde liegende Array zu iterieren. –

Antwort

0

Dies ist mehr richtige Option meiner Meinung nach

"members": [ 
       {name: "[email protected]", role: "administrator"}, 
       {name: "[email protected]", role: "member"}, 
       {name: "[email protected]##internalservicedomain.test.com##", role: "guest"} 
      ] 

Auf diese Weise kann nicht nur besser laufen kann, aber wenn Sie neue Rollen in der Zukunft hinzufügen wird es viel einfacher zu empfangen sein.

Letztlich können Sie Rolle „A“ für den Administrator setzen, „M“ für Mitglied und so weiter einige kbs zu schneiden ...

+0

Ok, ich werde das benutzen, obwohl ich es nicht mag. Ich möchte keine Akronyme für Rollen verwenden, weil das System riesig ist und für neue Programmierer unlesbar wäre. Ich habe eine bessere Antwort erwartet, aber es ist wahrscheinlich mein Problem, dass ich keine gute Frage zu dem Problem stellen kann. –

Verwandte Themen