Ich habe dieses JSON-Objekt in einer einfachen Textdatei gespeichert:
{
"MySQL": {
"Server": "(server)",
"Username": "(user)",
"Password": "(pwd)",
"DatabaseName": "(dbname)"
},
"Ftp": {
"Server": "(server)",
"Username": "(user)",
"Password": "(pwd)",
"RootFolder": "(rf)"
},
"BasePath": "../../bin/",
"NotesAppPath": "notas",
"SearchAppPath": "buscar",
"BaseUrl": "http:\/\/montemaiztusitio.com.ar",
"InitialExtensions": [
"nem.mysqlhandler",
"nem.string",
"nem.colour",
"nem.filesystem",
"nem.rss",
"nem.date",
"nem.template",
"nem.media",
"nem.measuring",
"nem.weather",
"nem.currency"
],
"MediaPath": "media",
"MediaGalleriesTable": "journal_media_galleries",
"MediaTable": "journal_media",
"Journal": {
"AllowedAdFileFormats": [
"flv:1",
"jpg:2",
"gif:3",
"png:4",
"swf:5"
],
"AdColumnId": "3",
"RSSLinkFormat": "%DOMAIN%\/notas\/%YEAR%-%MONTH%-%DAY%\/%TITLE%/",
"FrontendLayout": "Flat",
"AdPath": "ad",
"SiteTitle": "Monte Maíz: Tu Sitio",
"GlobalSiteDescription": "Periódico local de Monte Maíz.",
"MoreInfoAt": "Más información aquí, en el Periódico local de Monte Maíz.",
"TemplatePath": "templates",
"WeatherSource": "accuweather:SAM|AR|AR005|MONTE MAIZ",
"WeatherMeasureType": "1",
"CurrencySource": "cotizacion-monedas:Dolar|Euro|Real",
"TimesSingular": "vez",
"TimesPlural": "veces"
}
}
Wenn ich versuche, es mit zu dekodieren json_decode()
, es gibt NULL zurück. Wieso den? Die Datei ist lesbar (ich habe versucht echoing file_get_contents()
und es hat geklappt).
Ich habe JSON gegen getestet http://jsonlint.com/ und es ist vollkommen gültig.
Was ist hier falsch?
Arbeiten mit PHP 5.2.9; daher kann ich nicht verwenden
json_last_error()
.– Joel A. Villarreal Bertoldi
9. März 2010 um 15:57 Uhr
Beachten Sie auch, dass dies bei anderen ungültigen Zeichen in der Mitte der Datei passieren kann. Ich hatte gerade json_decode(), das null zurückgab, weil die Zeichenfolge einen dieser speziellen Bindestriche enthielt, die wahrscheinlich aus MS Word eingefügt und dann möglicherweise falsch codiert wurden. Um potenziell problematische Zeichen zu identifizieren, öffnen Sie die JSON-Datei (die ich in Notepad++ verwendet habe), ändern Sie die Kodierung (ohne sie zu konvertieren) und speichern Sie sie als Kopie. Vergleichen Sie dann die beiden Dateien (ich habe WinMerge verwendet).
– LinusR
17. Januar 2012 um 17:15 Uhr
(Windows Notepad-Problem) Bitte konsultieren Sie dies, ich habe das Problem auch geteilt und es wurde behoben: stackoverflow.com/questions/10290849/…
– Felix Aballi
19. September 2014 um 14:49 Uhr
Ein mögliches Duplikat von json_decode gibt nach dem Webservice-Aufruf NULL zurück
– Benutzer
3. Dezember 2014 um 18:17 Uhr
Für mich war es nichts Besonderes, nur ein zusätzliches Komma am Ende eines Objektelements. Fazit: Alles, was Ihr JSON inkonsistent macht, wird einen Fehler auslösen. Bonus-Tipp: Vertrauen Sie jsonviewer.stack.hu nicht Verwenden Sie so etwas wie jsonlint
– Aman Alam
24. Oktober 2016 um 11:30 Uhr