আমার এই JSON অবজেক্টটি একটি সরল পাঠ্য ফাইলে সংরক্ষণ করা হয়েছে:
{
"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"
}
}
আমি যখন এটির সাথে ডিকোড করার চেষ্টা করি তখন json_decode()
এটি NULL দেয়। কেন? ফাইলটি পঠনযোগ্য (আমি প্রতিধ্বনিত করার চেষ্টা করেছি file_get_contents()
এবং এটি ঠিক আছে)।
আমি জেএসএনকে http://jsonlint.com/ এর বিপরীতে পরীক্ষা করেছি এবং এটি পুরোপুরি বৈধ।
এখানে কি সমস্যা?
সমাধান
গুগলে উত্তর খুঁজছেন, আমি আবার ফিরে এলাম: json_decode ওয়েবসার্ভিস কল পরে NULL ফেরত । আমার জেএসওএন ফাইলটিতে ইউটিএফ বিওএম সিকোয়েন্স ছিল (কিছু বাইনারি চর যা সেখানে হওয়া উচিত নয়), এইভাবে, জেএসএন কাঠামোটি ভেঙে। হেক্স সম্পাদক এ গিয়েছিলেন, বাইটগুলি মুছলেন। সবকিছু স্বাভাবিক অবস্থায় ফিরে এসেছে। কেন এমন হয়েছে? কারণ আমি মাইক্রোসফ্ট উইন্ডোজ নোটপ্যাড ব্যবহার করে ফাইলটি সম্পাদনা করেছি। ভয়াবহ ধারণা!
json_last_error()
।