0

私はJSONとjQueryにかなり慣れていません。URLからのJSONファイルがあり、形式は次のとおりです。

{
    "united":[
        {"Atlanta","California","Alabama"}
    ]

    "canada":[
        {"Ontario","British Columbia"},
    ]
}

私がやりたいことは、ユーザーがリストから国を選択したときに、その国に固有の配列を解析したいということです。

私が持っているのはこれまでのところです:

function getUrl(country) {
    alert(urlBase + countrylist);
    $.getJSON(urlBase + countrylist, function(data){
       $.each(data, function (index, value) {
           alert(value);
       });
    });
}

値のアラートはトリガーされていないため、各ステートメント内には入っていないようです。

4

1 に答える 1

2

JSONが無効になっているようです。JSONの望ましい出力は次のようになると思います。

{
    "united":[
        "Atlanta","California","Alabama"
    ], //this comma is new

    "canada":[
        "Ontario","British Columbia" //a comma was removed from here
    ]
}

この構造を使用したデモは次のとおりです。http://jsfiddle.net/9sU65/(コンソールを見て動作を確認してください)

角かっこの中のかっこを削除したことに注意してください。これにより、適切にフォーマットされた都市の配列が作成されます。また、オブジェクトの最初のキーと2番目のキーの間にコンマを配置する必要があることに注意してください。

適切なオブジェクト表記は次の形式です。

{ key1 : 'val-1', key2 : 'val-2' }

あなたが持っている場合:

{ key1 , key2 }

次に、実際には、わずかに異なる表記を使用する配列を作成するだけです。

[ key1 , key2 ]

ところで、JSON(Chrome 20)を使用したときに発生するエラーは次のとおりです。

Uncaught SyntaxError: Unexpected token , 

そこにはたくさんありますが、いつでもJSONバリデーターを見つけて、JSONが有効かどうかを確認できます。これは、出力の形式に関係なく、新しいデータフィードで作業するときはいつでも行います。これは、優れたJSONバリデーターの例です。http://jsonformatter.curiousconcept.com/

于 2012-08-02T19:33:51.317 に答える