Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> metoda json_decode(), odczyt pliku json nie działa, nie wiedzieć dlaczego ;-/
inshua
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.01.2014

Ostrzeżenie: (0%)
-----


Problem wygląda następująco:
za pomocą metody json_decode() chcę przetworzyć stringa np. tej postaci:
Cytat
[
{
"name": "Adam",
"age": "28",
"projects": [
"Shop",
"Website",
"Facebook"
]
},
{
"name": "Mark",
"age": "23",
"projects": [
"Website",
"Facebook"
]
},
{
"name": "Anna",
"age": "24",
"projects": [
"Facebook"
]
}
]


przykładowy kod wygląda tak:
  1. ($dane=json_decode($stringzjsonem,true))?$dane:$dane="NONE";
  2. $dane=print_r($dane,TRUE);


problem w tym, że $dane zawsze są = "NONE", dodam, że kodowanie wczytywanych do $stringzjsonem danych to utf-8
dobrze by było gdyby ktoś mnie chociaż naprowadził co jest nie tak?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
inshua
post
Post #2





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 17.01.2014

Ostrzeżenie: (0%)
-----


@vonski
-plik jest w utf-8 z BOM jak mi pokazuje notepad++
-mb_detect_encoding() zwraca 'UTF-8'
-json_last_error() zwraca code: 4 = 'JSON_ERROR_SYNTAX' czyli malformed JSON

@ctom
pytanie dobre bo być może na tym cała sprawa się zasadza, otóż w pliku mam to samo co podstawiam pod zmienną jako stringa, czyli jeżeli dam jako zmienną:
Cytat
$stringzjsonem=' [ { "name": "Adam", "age": "28", "projects": [ "Shop", "Website", "Facebook" ] }, { "name": "Mark", "age": "23", "projects": [ "Website", "Facebook" ] }, { "name": "Anna", "age": "24", "projects": [ "Facebook" ] } ]'

i użyję jej w $dane=json_decode($stringzjsonem,true,512) to $dane są prawidłowo zdekodowanym jsonem, natomiast jeżeli tego samego stringa wrzucę do pliku, czyli w pliku mam:
Cytat
[ { "name": "Adam", "age": "28", "projects": [ "Shop", "Website", "Facebook" ] }, { "name": "Mark", "age": "23", "projects": [ "Website", "Facebook" ] }, { "name": "Anna", "age": "24", "projects": [ "Facebook" ] } ]

i zapiszę jako utf-8, to po wczytaniu go za pomocą $stringzjsonem=file_get_contents($plik) a potem spróbuję $dane=json_decode($stringzjsonem,true,512) to już $dane są puste ;-/
coś robię nie tak?
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 11:37