2015-06-18 13 views
5

Właśnie rozpoczął naukę JSON:typ Ilość w obiekcie JSON

których jeden z poniższych jest poprawne:

var json = {"age":22} // my book writes like this 

lub

var json = {age:22} // internet show example like this 

PHP burza generuje

argument type number is not assignable to parameter type string 

dla nich obu.

Jeśli drugi jest prawidłowy, pokaż, jaka jest różnica z obiektem JS.

+0

Obie są poprawne, cytaty są zbędne w tym przypadku. – dfsq

+0

btw dlaczego PHP generuje ostrzeżenie, czy jestem szalony? –

Odpowiedz

5

Cóż, używasz terminu JSON, ale pokazany przykład nie jest JSON. Jeśli mówisz o zwykłych obiektach JavaScript, oba podane przykłady są poprawne. Kiedy ludzie odwołują się do JSON-a, zazwyczaj odnoszą się do typu danych przesyłanych przez giełdy klient/serwer, które są bardzo specyficzne i są na to linters (patrz np. jsonlint). Błąd PHPStorm jest niepoprawny.

output

+0

dzięki. więc pierwszy można uznać za normalny obiekt JS, prawda? dlatego oboje nadal mogli wydrukować wartość. –

+1

@hansf., Oba podane przykłady to doskonale poprawne obiekty JS. Ale tylko pierwszym przykładem jest typ danych JSON (bez części 'var whatever ='). –

+1

Dziękuję, chcę tylko przestrzegać obowiązującej normy, ale ufam wam teraz! –

1

Zasadniczo JSON są pary wartość klucza, jego zasadzie obiekt do przechowywania danych

  • var json = { "wiek": "22"}: jeśli używasz jak to można uzyskać wartość jak json ["age"] i json.age, oba są pomocne w pewnych sytuacjach, a zwracana wartość jest łańcuchem, musisz ją przekonwertować (tylko wymagana)
  • var json = {age: 22}: jeśli używasz nie można uzyskać wartości takiej jak json [""] format, tylko json.age może być użyty do uzyskania
  • var json = { „wiek”: 22} powinno być dobrze jako używając typu, numeru, a ponadto można pobrać go za pomocą JSON [ „wiek”]

Powyższe scenariusze wymienione są waszym Funkcjonalności i ich użycie

+0

więc mówisz, że oba są prawidłowe JSON ?? –

+1

@hansf.zgodnie z walidatorami JSON, var json = {"klucz": 22} jest poprawny, a jeśli twój json ma wiele danych i zapętlenie jest wymagane i zmodyfikuj dane zgodnie z tym tak dobrze, jak dla (klucz var w jsonObj) { console.log (jsonObj [key]); // wartości konsol w twoim jsonie } –

1

Obydwa sposoby obowiązują w JavaScript. Ale cytaty są potrzebne w szczególnych przypadkach, takich jak:

var obj = { 
    'foo bar': 0, 
    'foo-bar': 0, 
    '': 0 
} 
1

Podczas pracy z JSON weryfikator/linter jest istotnym narzędziem, szczególnie w kontaktach z większymi zestawami danych.

Wysyłanie oba te poprzez http://jsonlint.com/ wyniki są następujące:

Pierwsze weryfikuje za ważne JSON, drugi ujawnia:

Parse error on line 1: 
     {age: 22} 
    -----^ 
    Expecting 'STRING', '}' 
+0

__ + 1, dziękuję za walidatora. –

Powiązane problemy