0

私は小さな問題に遭遇しました。$.ajaxオンラインでダブルチェックしたjQuery呼び出しを使用してJSONファイルにアクセスしようとしていますが、JSONコードは有効です。呼び出しを行うと、JSONの構文エラーを含む解析エラーがスローされます。

http://michael-nolan.com/にアクセスすると、エラーを見つけることができます。

これが私のJavaScriptです:

$(document).ready(function()
{
    $.ajax(
        { type: "GET",
          url: 'projects/projects.json', 
          dataType: "json", 
        success: function(results)
        { 
            console.log("Success!"); 
        }, 
        error: function(XMLHttpRequest, textStatus, errorThrown)
        { 
            console.log(textStatus); console.log(errorThrown); 
        } 
    });
});

これが私のJSONです

{
    "projects":
    [
        {
            "title":"Adobe Suite",
            "description":"Some stuff",
            "imgsrc":"img/adobe_suite_description.png"
        },
        {
            "title":"Gridlock",
            "description":"Stuff",
            "imgsrc":"img/gridlock_description.png"
        },
        {
            "title":"Open Cart",
            "description":"more stuff",
            "imgsrc":"img/opencart_description.png"
        }
    ]
}
4

7 に答える 7

2

Chromeで正常に動作します。IEは(何よりも)JSONで特に厳密です。

2番目と3番目の説明で改行を探します。それがIEで失敗していることだと思います。

于 2013-02-28T05:31:42.430 に答える
1

このエラーは、2番目の配列エントリの2つの段落の間の空白(おそらく改行文字)と関係があります。

...in the game.</p>
    <p>Gridlock...
^
|
the problem
于 2013-02-28T05:32:32.653 に答える
0

私はあなたのコードとそれが私のために働くことをテストしました、そして私はあなたのサイトでもそれを試し、そして与えまし304 not modifiedた。

したがって、getJson()jQueryメソッドを使用してみてください。

$.getJSON('projects/projects.json', function(data) {

});
于 2013-02-28T05:28:08.287 に答える
0

私がテストしたとき、あなたのコードはうまくいきました。構文エラーが何であるかに応じて、jsonがどのように生成されているか、projects/projects.jsonに移動するとjsonが正しく生成されるかどうかを確認する場合があります。jsonが生成された場合は、静的jsonに置き換えて、機能するかどうかを確認してください。

于 2013-02-28T05:30:47.180 に答える
0

JSONにはタブと改行があり、パーサーが失敗します。各タブインスタンスを次のように置き換え\t、改行を次のように置き換えます\n

JSONファイルの例:

{
    textWithTabs : "This is text with \t a tab and \n newline"
}

JavaScript:

var o = JSON.parse(json);

console.log(o.textWithTabs); //This is text with     a tab and ↵ newline
于 2013-02-28T05:38:14.067 に答える
0

これを試してみることをお勧めします:

{
"projects": [
    {
        "title": "Adobe Suite",
        "description": "<p>With years of experience using the Adobe Suite products I have skills that range from creating vector artwork in Adobe Illustrator, arranging web layouts in Adobe Photoshop, and creating print layouts in Adobe InDesign</p>",
        "imgsrc": "img/adobe_suite_description.png"
    },
    {
        "title": "Gridlock",
        "description": "<p>In my Sophomore year in college I worked with Jayson Fitch as an artist on a isometric 2d shooter called Gridlock. We as a team created all of the art assets that are being used in the game.</p><p> Gridlock is still in development and we hope to release it on the OUYA.Check out it's development blog here. <a href='http://gridlock-game.tumblr.com'>www.Gridlock-Game.Tumblr.com</a></p>",
        "imgsrc": "img/gridlock_description.png"
    },
    {
        "title": "Open Cart",
        "description": "<p>As a freelance project I initiated an overhaul of the Legendary Realms Terrain e-commerce storefront. This entailed a complete visual re-branding as well as creating a backend solution to expand online payment options.</p><p> Feel free to check them out at < a href = 'lrterrain.com' > Legendary Realms Terrain < /a></p > ",
        "imgsrc": "img/opencart_description.png"
    }
  ]
}
于 2013-02-28T05:48:38.770 に答える
-1

ログに記録されるエラーは、jsonの問題のように聞こえます。json[ ] のaを切り替えてみてください。{}

于 2013-02-28T05:25:56.377 に答える