2016-03-26 9 views
1

:Rubyの2.3.0用のirbでRuby 2.3.0 JSON.parseで予期しないトークンエラーが発生するのはなぜですか?私は、次のJSONが応答で返した

"{\n \"notices\": [\n {\n  \"id\": \"1234\",\n  \"projectId\": 1,\n  \"groupId\": \"55\",\n  \"createdAt\": \"2014-10-22T03:00:00.407Z\"\n },\n {\n  \"id\": \"1234\",\n  \"projectId\": 1,\n  \"groupId\": \"55\",\n  \"createdAt\": \"2014-10-22T03:00:00.407Z\"\n },\n ],\n \"count\": 2\n}\n" 

を私は上記の応答にJSON.parse(x)を使用する場合、私が取得:

JSON::ParserError: 419: unexpected token at '], 
    "count": 2 
}' 

http://jsonlint.comは言うにもかかわらず、それは有効なJSONです。私は間違って何をしていますか?

+0

面白い。 JSONも解析できるYAMLパーサは、この文章を不満なく受け入れます。 –

答えて

2

あなたの配列内の最後のオブジェクトの後にカンマを有する問題があるようです:

\"createdAt\": \"2014-10-22T03:00:00.407Z\"\n },\n ],\n \"count\": 2\n}\n" 
               ^This comma 

それを退治した後、私は期待どおりに動作するために解析を得た:

JSON.parse("{\n \"notices\": [\n {\n  \"id\": \"1234\",\n  \"projectId\": 1,\n  \"groupId\": \"55\",\n  \"createdAt\": \"2014-10-22T03:00:00.407Z\"\n },\n {\n  \"id\": \"1234\",\n  \"projectId\": 1,\n  \"groupId\": \"55\",\n  \"createdAt\": \"2014-10-22T03:00:00.407Z\"\n } ],\n \"count\": 2\n}\n") 
=> {"notices"=>[{"id"=>"1234", "projectId"=>1, "groupId"=>"55", "createdAt"=>"2014-10-22T03:00:00.407Z"}, {"id"=>"1234", "projectId"=>1, "groupId"=>"55", "createdAt"=>"2014-10-22T03:00:00.407Z"}], "count"=>2} 
+0

ああ、私の悪い、あなたがオブジェクトを指しているが、私はコンマを指して:) –

+0

ちょっと、ちょっとそれをもう少し明確にした:) –

関連する問題