元の json ファイルの内容は次のとおりです:
{
label: 'Europe (EU27)',
data: [[1999, 3.0], [2000, 3.9], [2001, 2.0 ]、[2002、1.2]、[2003、1.3]、[2004、2.5]、[2005、2.0]、[2006、3.1]、[2007、2.9]、[2008、0.9]]
}
解決策 1:
標準の JSON 形式に変更し、すべての文字列を "" で修飾する必要があります。 変更された内容は次のとおりです:
{
"label": "Europe (EU27) )",
"データ": [[1999, 3.0], [2000, 3.9], [2001, 2.0], [2002, 1.2], [2003, 1.3], [2004, 2.5], [ 2005, 2.0], [2006, 3.1], [2007, 2.9], [2008, 0.9]]
}
これは正常にロードされます。
解決策 2:
jQuery-1.4.2.js で「parseJSON: function」を検索すると、次のコードが見つかります:
// http://json.org/json2.js から借用したロジック
if ( / ^[ ],:{}s]*$/.test(data.replace(/\(?:["\/bfnrt]|u[0-9a-fA-F]{4})/g, "@ ")
.replace(/"[^"\nr]*"|true|false|null|-?d (?:.d*)?(?:[eE][ -]?d )?/ g, "]")
.replace(/(?:^|:|,)(?:s*[) /g, "")) ) {
// ネイティブ JSON パーサーを使用してみるfirst
return window.JSON && window.JSON.parse ?
window.JSON.parse( data ) :
(new Function("return " data))(); else {
jQuery.error( "無効な JSON: " data );
}
parseJSON 関数は httpData で使用されています: function:
// JSON が使用されている場合は、JavaScript オブジェクトを取得します。
if ( type === "json" || ! type && ct.indexOf("json") >= 0 ) {
data = jQuery.parseJSON( data ); jQuery1.3.2 には、 parseJSON メソッドはありませんが、以下のコードを直接使用します。
コードをコピー
コードは次のとおりです: // JavaScript オブジェクトを取得します (JSON の場合) if ( type == "json" )
data = window["eval"]("(" data ")");
元の 1.3 に置き換えます。 .2コード 以上です。
以下は他のネチズンからの追加です:
jquery1.4.2 バージョンではパフォーマンスが 2 倍になりましたが、厄介な点の 1 つは $.getJSON 関数です。これは元々古い If the JSON を使用していました。バージョンのデータが標準的な方法で記述されていないため、このバージョンを使用して JSON データを正常に取得できません
例:
非標準的な JSON の書き方
コードをコピー
コードは次のとおりです: {Err:1,errmsg:'ID 値が無効です!正しいフォーム ページから送信してください。 } jquery 1.4.x より前の古いバージョンは通常どおり入手できますが、プログラムを開発するときにこの形式を使用すると、JQUERY を新しいバージョンにアップグレードすると、この形式が失われるため、面倒になります。読み込めません
JSON標準の書き方、全バージョン普通に取得可能
コードをコピー
コードは以下の通りです。 {"Err":1,"errmsg":"ID 値が無効です! 正しいフォーム ページから送信してください!"} これは、ネイティブ JSON がjquery1.4.X バージョンのパーサーで使用される JSON 形式には厳しい要件があります
プログラムの JSON データを変更したくない場合、古いデータと新しいデータを での使用に適したものにする他の方法はありますか?新しいバージョン?
方法はありますが、JSON処理関数を古いバージョンに戻すだけです。 変更方法は以下の通りです。
jq1.4.x正規版の変更
jquery-1.4.x.jsファイルを開きます。次のコードを見つけます:
data = jQuery.parseJSON( data );
を次のコードに変更します:
data = window["eval"]("(" data ")"); >jq1.4 .x 縮小版の変更
jquery-1.4.x.min.js ファイルを開き、次のコードを見つけます。
a=c.parseJSON(a);
次のコードに変更します。 :
a= window ["eval"]("(" a ")");
プログラムを試してみてください。$.getJSON は正常ですか?
もちろん、正規表現を作成できる場合は、parseJSON 関数の新しいバージョンで正規表現を処理する JSON を変更できます。