2

私は現在、Javascript/Dojoを使用して練習しています。ただし、解決できないエラーがあります。

Uncaught SyntaxError:予期しないトークンo

問題の簡単な抜粋を作成しました。

var data = {
    "list": {
        "1": {
            "Relevance": "Low",
            "id": 1,
            "Name": "Inorganic"
        },
        "2": {
            "Relevance": "Low",
            "id": 2,
            "Name": "Mobile"
        }
    }
}

var jsonData = JSON.parse(data);
alert(jsonData.list[1].Name);

具体的には、次の行を対象としています。

var jsonData = JSON.parse(data);

なぜこれがエラーなのか、どうやって解決するのか知りたいのですが。

4

4 に答える 4

11

JavaScript オブジェクトを解析しようとしています。JavaScript のようなオブジェクトを表すJSON.parseJSON 文字列を解析するためのものです。

解析を完全にスキップするだけです:

alert(data.list[1].Name);

関連するメモ: 「JSON オブジェクトのようなものはありません」を読むことに興味があるかもしれません。

于 2013-01-10T19:42:42.463 に答える
4

エラーは、データ型 json として宣言されると、解析されます。

だから:それはこのようなものになります

<span style="text-decoration:line-through;">var obj = JSON.parser(data)</span>

 success: function(data){

  var obj = JSON.parser(data)

  alert(obj.data)

}
于 2013-02-01T09:54:26.467 に答える
2

試す :

 alert(data.list[1].Name);

それ以外の:

 var jsonData = JSON.parse(data);
 alert(jsonData.list[1].Name);

データはすでに文字列ではなく JavaScript オブジェクトです

于 2013-01-10T19:43:05.310 に答える
1

これは、予想どおり、文字列ではなくプレーン オブジェクトを解析しているためです。この場合、次のことを行うだけです。

alert(jsonData.list[1].Name);

この場合、JSON.parseメソッドを使用するには、次の文字列を使用する必要があります。

var stringifiedJson = var data = "{"+
    "\"list\": {"+
        "\"1\": {"+
            "\"Relevance\": \"Low\","+
            "\"id\": 1,"+
            "\"Name\": \"Inorganic\""+
        "},"+
        "\"2\": {"+
            "\"Relevance\": \"Low\","+
            "\"id\": 2,"+
            "\"Name\": \"Mobile\""+
        "}"+
    "}"+
"}";

var jsonData = JSON.parse(stringifiedJson);
alert(jsonData.list[1].Name);

ネイティブ JSON に関する MDN の記事をご覧になることをお勧めします。

于 2013-01-10T19:43:44.263 に答える