Ich sehe viele Fragen, die sich mit dem Zugriff auf JSON-Schlüssel befassen, die Bindestriche verwenden (Kebab-Fall), aber jetzt frage ich mich, ob ich mich nur an camelCase oder snake_case in meinen Schlüsseln halten soll. Ich weiß, dass Bindestriche auch komplizierte Zuordnungen erstellen können, wenn sie zwischen Sprachen portiert werden. Ich habe gesehen, dass einige JSON-Deserialisierungsbibliotheken diese Schlüssel in einen camelCase-Stil konvertieren.
Beispiel:
var something = {
"some-value": 'thing'
}
Vs
var something = {
"someValue": 'thing',
"some_other_value": 'thing_two'
}
javascript
api
api-design
json
web-api
Matt Oaxaca
quelle
quelle
Antworten:
Sie können alles als JSON-Schlüssel verwenden, solange es UTF-8 gültig ist, keine Nullcodepunkte enthält, und es wäre nützlich, wenn Sie den Schlüssel als Zeichenfolge in der Programmiersprache Ihrer Wahl darstellen könnten. Ich könnte empfehlen, keine unterschiedlichen Unicode-Darstellungen derselben Zeichenfolge zu verwenden (z. B. "Ä", geschrieben als ein oder zwei Codepunkte).
Lesen einiger Kommentare: Es scheint, dass einige Leute versuchen, Klassen mit Instanzvariablen zu erstellen, die mit den Schlüsseln in JSON-Wörterbüchern übereinstimmen. Was natürlich nicht funktioniert, wenn Ihr Schlüssel "irgendein Wert" ist, es sei denn, Sie schreiben COBOL. Ich denke, das ist falsch. Ich habe Modellklassen, die so gestaltet sind, wie ich sie möchte. JSON wird nur zum Füllen der Modellklassen verwendet. Ich werde alles, was die Server-Leute für die Schlüssel verwendet haben, in meine Modellobjekte einfügen.
quelle
Es gibt viele JSON-Serialisierungssysteme, die die Zuordnung zwischen Feldnamen, die nicht für die Verwendung in der Sprache geeignet sind, in die sie integriert sind, mehr als verarbeiten können. In den meisten Fällen sind sie nicht schwer zu bedienen und erfordern nur wenig zusätzlichen Aufwand. In einer idealen Welt müssten Sie das nicht tun, aber wenn Ihre API bereits Bindestriche verwendet, wäre eine Änderung schlimmer als die Krankheit. Beachten Sie auch, dass die Verwendung von Bindestrichen in bestimmten Sprachen am häufigsten vorkommt, insbesondere in LISP-basierten Sprachen. Daher gibt es wahrscheinlich eine stille Minderheit der Konsumenten Ihrer API, die Bindestriche anstelle eines anderen Formats gerne sehen.
quelle
Nachdem ich einige Zeit in der Industrie verbracht und einige Systeme bearbeitet hatte. Ich glaube nicht, dass es eine bewährte Methode oder ein geeignetes Gehäuse für JSON-Schlüssel gibt. Der wichtigste Aspekt jeder Formatierung (Gehäuse / Codestil / usw.) ist die Konsistenz und Teamakzeptanz.
Wenn die Codebasis fragmentiert und inkonsistent ist, treffen Sie sich als Team und vereinbaren Sie einen einheitlichen Stil. Dann überwachen Sie die Formatierung gemeinsam.
quelle