2016-05-23 5 views
-3

私が間違いを見つけることができません。私もJSONLintに入れましたが、1行目のエラーの意味を理解していません。 'STRING'、 '}'が必要です。 'undefined'があります。私はあなたがJSONを実行するように、最初のブラケットからコードを実行しました。エラーはどういう意味ですか?My Javascriptネストされたオブジェクトが動作しません

var work = { 

    jobs: [{ 

     job: { 

     employer: "boss1", 
     title: "title1", 
     location: "dddd", 
     dates: "ddmmyy" 
     } 
    }, 

    { 
     job: { 

     employer: "boss2", 
     title: "title2", 
     location: "ffff", 
     dates: "ddmmyy" 
     } 
    } 
    ] 
}; 
+0

JSONバリデータを使用してみましたか? JSONが無効です。すべてのオブジェクトプロパティは文字列でなければなりません。 – evolutionxbox

+1

「うまくいかない」とはどういう意味ですか?これはJSONかJavaScriptオブジェクトであるはずですか?これは完全に有効なJavaScriptオブジェクトです。 – forgivenson

答えて

2

これはJSONではありません、それは変数workにオブジェクトを代入するJavaScriptコードの一部です。そこには変数の代入ではありませんし、すべてのプロパティ名は、二重引用符であるか

{ 
    "jobs": [{ 
    "job": { 
     "employer": "boss1", 
     "title": "title1", 
     "location": "dddd", 
     "dates": "ddmmyy" 
    } 
    }, { 
    "job": { 
     "employer": "boss2", 
     "title": "title2", 
     "location": "ffff", 
     "dates": "ddmmyy" 
    } 
    }] 
} 

注:

この

はJSONです。それ以外の場合、オブジェクトは正常です。投稿したJavaScriptコードなどのJavaScriptコードを確認する必要がある場合は、 JSHintを使用すると、構文エラーが通知されます。

+0

ありがとう@ダニエルDiekmeier。二重引用符は問題を解決しました。そして、はい、JSONLintをオブジェクトに割り当てることなくテストするときにJSON部分のみを実行しました。 – Feyt

0

あなたはこの有効なJSONを作るためにあなたのオブジェクトキーの周りに二重引用符を配置する必要があります。また、あなたのオブジェクトからJSON文字列を生成するためにJSON.stringify(仕事)を使用することができ

{ 
    "jobs":[ 
     { 
     "job":{ 
      "employer":"boss1", 
      "title":"title1", 
      "location":"dddd", 
      "dates":"ddmmyy" 
     } 
     }, 
     { 
     "job":{ 
      "employer":"boss2", 
      "title":"title2", 
      "location":"ffff", 
      "dates":"ddmmyy" 
     } 
     } 
    ] 
} 

、私はできません私はまだそれをテストしていませんが、その問題を参照してください。

関連する問題