jquery 1.4 で $.ajax() メソッドを使用して json オブジェクトを解析するときに発生した最近の問題について話しましょう。
Json オブジェクトは次のとおりです:
[{ name:'中古住宅 販売',infoCount:0,pageUrl:'/ershoufang'},{name:'中古住宅 購入',infoCount:0,pageUrl:'/qiugou'}, {name:'中古住宅装飾', infoCount:0,pageUrl:'/esfzhuangxiu'},{name:'中古リサイクル',infoCount:0,pageUrl:'/huishou'},{name:'Second -バイク',infoCount:0,pageUrl:'/motor '},{name:'中古車買取',infoCount:0,pageUrl:'/ershoucheqg'},{name:'中古車譲渡' ,infoCount:9,pageUrl:'/ershouche'},{name:'中古車市場',infoCount:0,pageUrl:'/ershoushichang'}]
この JSON オブジェクトの問題に気づいた人がいるかどうかはわかりません。 js スクリプトおよび jquery 1.4 より前のバージョンでは、この書き方は問題ありません。 1.3 以前のバージョンでは、jQuery は JavaScript の eval メソッドを通じて json オブジェクトを解析するためです。 1.4 では、jQuery は json を解析するためにより厳密なアプローチを使用します。すべてのコンテンツは二重引用符を使用する必要があります。
これは、jQuery.parseJSON(json) からわかります。ドキュメント内の parseJSON の説明は次のとおりです。
JSON 文字列を受け入れ、解析されたオブジェクトを返します。
不正な JSON 文字列を渡すと例外がスローされます。たとえば、以下は不正な JSON 文字列です:
{test: 1} (test は二重引用符で囲まれていません)
{'test': 1} (二重引用符の代わりに一重引用符が使用されています)
さらに、何も渡さない場合、または空の文字列、null または未定義の場合、parseJSON は null を返します。