To, co chcę zrobić, to:
- biorąc JSON jako dane wejściowe z obszaru tekstowego w php
- użyj tego wejścia i przekonwertuj go na JSON i przekaż do php curl, aby wysłać żądanie.
to m uzyskuje php z get of api ten ciąg json chcę przekazać do json, ale nie jest konwertowany na tablicę
echo $str='{
action : "create",
record: {
type: "n$product",
fields: {
n$name: "Bread",
n$price: 2.11
},
namespaces: { "my.demo": "n" }
}
}';
$json = json_decode($str, true);
powyższy kod nie zwraca mi tablicy.
then it is not giving
Nie dając czego? Pobierasz ciąg w formacie JSON z obszaru tekstowego i konwertujesz go na JSON ???Odpowiedzi:
Jeśli przekażesz JSON w swoim poście do
json_decode
, zakończy się niepowodzeniem. Prawidłowe ciągi JSON mają klucze w cudzysłowach:źródło
json_decode()
zwróci on informację,NULL
że kod JSON jest nieprawidłowy (na przykład brak kluczy w cudzysłowie). Tak mówi dokumentacja i to zwraca moja instalacja PHP 5.2. Czy używasz funkcji innej niż oficjalna, wbudowanajson_decode()
? Covar_dump(json_decode($str, true));
wraca?Spróbuj tego:
Drugi parametr sprawi, że zdekodowany łańcuch json stanie się tablicami asocjacyjnymi.
źródło
Jeśli otrzymujesz ciąg JSON z formy korzystania
$_REQUEST
,$_GET
albo$_POST
będzie trzeba użyć funkcjihtml_entity_decode()
. Nie zdawałem sobie z tego sprawy, dopóki nie zrobiłemvar_dump
tego, co było w żądaniu, w porównaniu z tym, co skopiowałem do iecho
oświadczenie, i zauważyłem, że ciąg żądania był znacznie większy.Właściwa droga:
Z błędami:
źródło
Użyj
json_decode($json_string, TRUE)
funkcji, aby przekonwertować obiekt JSON na tablicę.Przykład:
UWAGA: Drugi parametr przekształci zdekodowany ciąg JSON w tablicę asocjacyjną.
===========
Wynik:
źródło
Jeśli otrzymujesz ciąg json z adresu URL za pomocą
file_get_contents
, wykonaj następujące kroki:źródło
Twój ciąg powinien mieć następujący format:
Wynik:
źródło
Możesz przekonwertować obiekt json na Array & String.
źródło
Jeśli kiedykolwiek będziesz musiał przekonwertować plik lub struktury JSON na tablice w stylu PHP, ze wszystkimi poziomami zagnieżdżenia, możesz użyć tej funkcji. Najpierw musisz json_decode ($ yourJSONdata), a następnie przekazać go do tej funkcji. Wyświetli w oknie przeglądarki (lub konsoli) prawidłowe tablice w stylu PHP.
https://github.com/mobsted/jsontophparray
źródło
Myślę, że to powinno działać, po prostu klucze powinny być również w podwójnych cudzysłowach, jeśli nie są cyframi.
źródło
to moje rozwiązanie: ciąg json
$columns_validation = string(1736) "[{"colId":"N_ni","hide":true,"aggFunc":null,"width":136,"pivotIndex":null,"pinned":null,"rowGroupIndex":null},{"colId":"J_2_fait","hide":true,"aggFunc":null,"width":67,"pivotIndex":null,"pinned":null,"rowGroupIndex":null}]"
więc używam json_decode dwa razy w ten sposób:
a wynik to:
źródło
Upewnij się, że ciąg ma następujący format JSON, który wygląda mniej więcej tak:
Jeśli nie, możesz dodać parametry
"responsetype => json"
żądania.Następnie użyj,
json_decode($response,true)
aby przekonwertować go na tablicę.źródło
responseType
właściwość służy do określenia rodzaju danych w odpowiedzi na zapytanie. Problem polega jednak na tym, że treść żądania zawiera dane, które same w sobie nie znajdują się w prawidłowym pliku. Twoja odpowiedź nie pasuje zatem do podanego kontekstu.Możesz zmienić ciąg na JSON w następujący sposób, a także możesz przyciąć, rozebrać ciąg, jeśli chcesz,
źródło
Użyj tego konwertera, to wcale nie zawodzi: Services_Json
źródło
źródło