لماذا هذا JSON غير صالح؟

لقد كنت أحاول ولكن لا أعرف لماذا هذا JSON غير صالح (عندما أضع على www.jsonlint.com) يمكن لأي شخص أن يساعد؟ هنا هو JSON:

    [
    {
        "title": "COFA NEW SOUTH WALES ",
        "img": "images/uni/cofa.png",
        "desc": "One of the Best University",
        "url": "http://127.0.0.1:8888/ilets/app/col.html"
    },
    {
        "title": "MIDDLESEX UNIVERSITY ",
        "img": "images/1339977840.jpg",
        "desc": "Well this is Testi",
        "url": "http://127.0.0.1:8888/ilets/app/MIDDLESEX UNIVERSITY.html"
    },
    {
        "title": "ROYAL COLLEGE OF ARTS ",
        "img": "images/uni/1339978144.png",
        "desc": "This is One of the best University",
        "url": "http://127.0.0.1:8888/ilets/app/ROYAL COLLEGE OF ARTS.html"
    },
    {
        "title": "UNIVERSITY OF SCOTLAND ",
        "img": "images/uni/1339996882.gif",
        "desc": "SCOTLAND OWNS THIS UNIVERSITY",
        "url": "http://127.0.0.1:8888/ilets/app/UNIVERSITY OF SCOTLAND.html"
    }
]
1
لا أرى أنه هنا غير صالح
وأضاف المؤلف Fahim Parkar, مصدر
UmairKhanJadoon: لا يزال يقول VALID JSON بعد النسخ من هنا
وأضاف المؤلف Fahim Parkar, مصدر
UmairKhanJadoon: عند النقر على عنوان URL كـ " syedmujahidali.com/ilets/retrive.php" ؛ كيف يمكنك عرض سلسلة JSON؟ هل تفعل صدى & json_encode ()؟
وأضاف المؤلف Fahim Parkar, مصدر
نفس الشيء بالنسبة لي. هل تواجه مشكلة خاصة في تحليل هذا من خلال أي من واجهات برمجة تطبيقات JSON؟
وأضاف المؤلف verisimilitude, مصدر
UmairKhanJadoon ، لا تحدد المسافة قبل فتح [. انها صالحة JSON. بالطبع هل لاحظت أن هذا البرنامج النصي .php يرجع JSON داخل HTML؟ لذلك إذا حاولت تحليل الاستجابة مباشرة من هذا البرنامج النصي .PHP ، حسنًا ، هذا بعيد عن شيء يشبه إلى حد كبير JSON.
وأضاف المؤلف Darin Dimitrov, مصدر
حسنا ، هذا غريب. يتم إنشاء JSON هنا: syedmujahidali.com/ilets/retrive.php قم بتعبيره من هنا على JSONlint وتقول أنه غير صالح. وعندما أنسخ/ألصق JSON من هنا إلى stackoverflow وننسخ/نلصق من stackoverflow إلى JSONlink ثم يقول إنه غير صالح.
وأضاف المؤلف Umair Khan Jadoon, مصدر
تضمين التغريدة شكرا جزيلا! أنا فقط لاحظت أنه داخل HTML. ما أغباني.
وأضاف المؤلف Umair Khan Jadoon, مصدر
لقد قمت بنسخ ولصق النموذج الخاص بك في JSONlint وتقول "JSON"
وأضاف المؤلف Jan Doggen, مصدر
يبدو لي أن يثبت لي على JSONlint.com
وأضاف المؤلف Liyan Chang, مصدر
يقول JSONLint أنه صحيح.
وأضاف المؤلف Filburt, مصدر
ربما لا توجد مشكلة ، ولكن بعض المشاكل مع علامة UTF؟
وأضاف المؤلف Vladislav Bauer, مصدر
نفس الشيء هنا ، JSONViewer في notepad ++ يقول أنه صحيح
وأضاف المؤلف randomUser56789, مصدر

2 إجابة

JSON الذي عرضته في سؤالك صالح. من ناحية أخرى ، يرجع النص الذي ذكرته في قسم التعليقات ( http://www.syedmujahidali.com/ilets/retrive.php ) HTML ، وليس JSON ، لذلك إذا حاولت تحليل نتيجة هذا البرنامج النصي مع محلل JSON سوف تفشل بوضوح. إليك كيف تبدو الاستجابة:

<head>

<meta charset="UTF-8"></head><body onload="abc()">
<script>
function abc(){
document.getElementById('copy').innerHTML = document.getElementById('content').innerHTML;
var ab=  document.getElementById('content').innerHTML;
}
</script>

<div id="content" style="display:none;">


[{"title":"COFA NEW SOUTH WALES "  ,"img":"images/uni/cofa.png","desc":"One of the Best University","url":"http://127.0.0.1:8888/ilets/app/col.html"},
{"title":"MIDDLESEX UNIVERSITY " ,"img":"images/1339977840.jpg","desc":"Well this is Testi","url":"http://127.0.0.1:8888/ilets/app/MIDDLESEX UNIVERSITY.html"},
{"title":"ROYAL COLLEGE OF ARTS " ,"img":"images/uni/1339978144.png","desc":"This is One of the best University","url":"http://127.0.0.1:8888/ilets/app/ROYAL COLLEGE OF ARTS.html"},
{"title":"UNIVERSITY OF SCOTLAND " ,"img":"images/uni/1339996882.gif","desc":"SCOTLAND OWNS THIS UNIVERSITY","url":"http://127.0.0.1:8888/ilets/app/UNIVERSITY OF SCOTLAND.html"}]</div> <div id="copy"> </div> </body>
2
وأضاف

حسنًا ، هذا غريب. يتم إنشاء JSON هنا: syedmujahidali.com/ilets/retrive.php Copypaste من هنا على JSONlint ويقول إنه غير صالح.

بالنظر فقط إلى النص المعروض للإجابة من تلك الصفحة (راجع إجابة دارين لماذا أقوم بهذا التمييز) ، فإن المشكلة هو أن يتم فتح ردك باستخدام BOM . يجعل BOM JSON غير صالح. لقد ذهبت إلى هذا الرابط وقمت باختيار الكل والنسخ ، ثم لصقها في jsonlint.com ، وحصلت على خطأ "الرمز المميز غير الصالح" الذي تحصل عليه. لذلك أنا لصقها في vim ، وأظهر لي vim FE FF في بداية النص.

لذا سيكون الإصلاح هو معرفة السبب في أن صفحة PHP تبدأ بـ BOM وتصلح ذلك. أنت لا تحتاج إلى BOM باستخدام UTF-8.

0
وأضاف
DarinDimitrov: صحيح ، إذا حاول معالجة الاستجابة الكاملة من تلك الصفحة مباشرة. لكنني افترضت أنه يعني النص الذي عاد إليه ، والذي يحتوي على BOM فيه. قد ترغب في نشر جانب HTML كإجابة. عدل : آه ، لديك. :-) +1
وأضاف المؤلف T.J. Crowder, مصدر
ما بوم؟ هذا البرنامج النصي PHP يرجع HTML ، وليس JSON. إذا حاول برنامج OP إجراء تحليل مباشر للإجابة من نص PHP هذا ، فسوف يفشل لأن النص البرمجي لا يعرض JSON كجميع.
وأضاف المؤلف Darin Dimitrov, مصدر