2009-06-03 13 views
5
{"something":"1","mode":"true","number":"1234"} 

Ponieważ dostaję 406 na oczekiwaniu JSON.Czy to jest prawidłowy JSON?

Jest generowany przez Jersey, który mówi, że metoda @Produces JSON. Jest odbierany przez xrget Dojo, który ustawił JSON jako swój uchwyt.

EDYCJA - Aby wyjaśnić, nie interesuje mnie kod, który oceniam ani nic podobnego. Pytanie było bardzo proste - czy jest to poprawny JSON?

+0

udostępnij kod, w którym jest oceniany. –

+0

To jest poprawny JSON. – Nosredna

Odpowiedz

14

Jest, ale masz zarówno boolowskie (mode) i numeryczne (number) elementy jako ciągi. Nie powinno to być:

{"something":"1","mode":true,"number":1234} 
+0

Dzięki, zajrzą do tego. – mtrc

1

Jeśli chcesz używać numerów bezpośrednio, nie powinieneś umieszczać ich w cudzysłowach. Jest to ważne JSON, ale są szanse, że to, co chcesz zrobić, to:

{ "coś": 1, "Tryb": "Prawda", "Numer": 1234}

Trzeba dodać więcej informacje, jeśli chcesz uzyskać lepsze odpowiedzi.

EDIT: Eh ... i tak, logiczna nie powinny być cytowane albo, chyba chcesz aby konwertować się z jakiegoś powodu.

7

Jest ważne JSON, jeśli wszystkie wartości słownika są łańcuchami. Jest to również ważne JSON:

{ "coś": 1, "Tryb": true, "numer": 1234}

Zwykle jednak błąd 406 się dzieje, kiedy poprosić o typ reakcji (np jako html lub json), a serwer nie może go wysłać w tym typie. Dlaczego uważasz, że dane wejściowe są nieprawidłowe?

0
  • tak to jest ważne JSON
  • chociaż jeśli planujesz na wyprowadzanie to w wyniku żądania HTTP, trzeba uciec wszystkie cytaty

$ str = " {\ "something \": \ "1 \", \ "mode \": \ "true \", \ "number \": \ "1234 \"} "; echo $ str