Question

    

Cette question a déjà une réponse ici:

         

Je suis nouveau à des objets JSON et JavaScript.

  • Quelqu'un peut-il s'il vous plaît expliquer les différences entre JSON et objet JavaScript?
  • Quelles sont leurs usages?
  • est mieux que l'autre? Ou est-il dépend de la situation?
  • Quand utiliser un qui, dans quelle situation?
  • Pourquoi JSON créé en premier lieu? Quel était son objectif principal?
  • Exemples de give quelqu'un peut bien quand il faut utiliser plutôt JSON qu'un objet JavaScript et inversement?
Était-ce utile?

La solution

D'abord, vous devez savoir ce que JSON est:

  • Il est langue agnostique format de données-échange.

La syntaxe de JSON a été inspiré par la notation littérales JavaScript Object, mais il y a des différences entre eux.

Par exemple, dans tous les JSON touches doivent être cotées en bourse, alors que dans littéraux objet ce n'est pas nécessaire:

// JSON:
{ "foo": "bar" }

// Object literal:
var o = { foo: "bar" };

Les citations sont obligatoires sur JSON car en JavaScript (plus exactement ECMAScript 3e édition.), L'utilisation de mots réservés que les noms de propriété est refusé, par exemple:

var o = { if: "foo" }; // SyntaxError in ES3

Alors, en utilisant un littéral de chaîne comme un nom de propriété (en indiquant le nom de la propriété) donne aucun problème:

var o = { "if": "foo" }; 

pour "compatibilité" (et peut-être eval'ing facile?) Les guillemets sont obligatoires.

Les types de données dans JSON sont également limitées aux valeurs suivantes:

  • string
  • number
  • object
  • array
  • Un littéral comme:
    • true
    • false
    • null

La grammaire des changements Strings. Ils doivent être délimité par guillemets doubles , alors que JavaScript, vous pouvez utiliser des guillemets simples ou doubles de manière interchangeable.

// Invalid JSON:
{ "foo": 'bar' }

La grammaire JSON acceptée Numbers change aussi, en JavaScript, vous pouvez utiliser hexadécimaux littéraux, par exemple 0xFF, ou (l'infâme) Octal littéraux par exemple 010. JSON vous ne pouvez utiliser que décimales littéraux.

// Invalid JSON:
{ "foo": 0xFF }

Il y a quelques implémentations buggy (Firefox 3.5+, IE8 +, json2.js) où sont littéraux octal autorisés à tort, par exemple JSON.parse('01') devrait produire un SyntaxError.

Autres conseils

JSON est une représentation de chaîne d'un objet. Il est un format de sérialisation interopérable. Il n'est pas liée uniquement à javascript. Par exemple, il y a JSON serializers pour .NET vous permettant de linéariser / désérialiser objets .NET.

Il est juste un format qui vous permet de convertir des objets à chaîne et à l'arrière qui est pratique si vous voulez les transférer sur le fil.

Il est très proche de la représentation de l'objet javascript et si vous eval() simplement une chaîne JSON vous obtiendrez l'objet correspondant.

JSON est un format d'échange de données, ce qui arrive juste pour ressembler à un sous-ensemble d'un code JavaScript ou YAML vous pouvez exécuter et obtenir un retour d'objet. Un objet JavaScript est juste un objet JavaScript.

JSON étant un format d'échange de données, vous pouvez échanger des données structurées sous une forme textuelle avec elle. Il est assez découplée de JavaScript maintenant. objet JavaScript vous permet de créer et de travailler avec des données structurées au cours de l'exécution d'un programme JavaScript.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top