回答受付中の質問

質問No.6854142
すぐに回答を!
すぐに回答を!
お気に入り投稿に追加する (0人が追加しました)
回答数4
閲覧数5164
JSONパース時に改行があるとエラーに
ajaxでjsonを取得して、$.parseJSON(ajaxReq.responseText);

でパースさせようとしているのですが、
どうしてもエラーになります。

JSONの書き方の問題らしいので色々試したところ、改行を消すとシンタックスエラーも消えました。
複雑に入れ子になったJSONファイルなので改行がないとわけがわかりません。
なのでそのままの形でパースしたいのですが何か良い方法はないのでしょうか?
投稿日時 - 2011-07-04 19:15:06
あなたの言葉で、相談者さんの悩みを解決しませんか?
OKWaveではみんなのありがとうの輪を広げています!

回答 (4)

回答No.4
#2です。
本題からずれてしまうのかも知れませんが、

>eval以外に変換する方法があるんでしょうか。
パーサをスクリプトで作成してしまえば可能かと…

すでにあるのではないかと探してみたら、やはりあるみたいです。
(内容は確認していません)
https://github.com/douglascrockford/JSON-js
http://code.google.com/p/json-sans-eval/
投稿日時 - 2011-07-06 13:48:51
この回答を支持する
(現在0人が支持しています)
回答No.3
JSON は改行(CRLF)を認めてるはずなんですが、現象を再現できるコードを掲示できるでしょうか?
文字列リテラルで改行できないのは通常の JavaScript と一緒ですが、エスケープすれば済む話ですよね…。
http://jsfiddle.net/6hvBe/2/
http://es5.github.com/#x15.12.1.1
http://api.jquery.com/jQuery.parseJSON/
投稿日時 - 2011-07-04 21:38:23
この回答を支持する
(現在0人が支持しています)
お礼
http://...../data.json → { JSONファイル}

これをAjaxで取得し、

var data = XMLHttpReqInstance.responseText;
data = $.parseJSON(data);
//ここでparseJSON内のJSON.parseでSyntax...illegal...とのエラー

こんな形です。
JSON内の改行はエンターキーで行っています。
JSLINTでチェックしたところSyntaxには問題ないようです。

下にも書きましたが、改行というよりデータ形式に問題があるのかもしれないです
投稿日時 - 2011-07-05 15:04:30
回答No.2
よくわかってませんが…

『textで取得して、スクリプトで改行を削除し、evalでオブジェクトに変換』というのでは?
投稿日時 - 2011-07-04 21:32:34
この回答を支持する
(現在0人が支持しています)
お礼
ありがとうございます。

確かにevalで変換するとできますが、evalにはセキュリティ上欠陥があるので避けたいんですよね。
改行をreplace((new RegExp("改行","g")),"");で削除してみてもだめでした。
下にも書いたんですが、text形式だからダメだったんですかね。
eval以外に変換する方法があるんでしょうか。
投稿日時 - 2011-07-05 14:56:21
回答No.1
何かAjaxに置けるJSONファイルの扱いの仕様みたいです。

http://www.support-you.com/wiki/ajax/Ajax%2F999)Javascript%2F500)JSON%2F500)%B2%FE%B9%D4%A5%B3%A1%BC%A5%C9%A4%CE%CC%E4%C2%EA.html

どうしても人に優しいJSONで行きたいのなら、JavaScript(jQuery)とかでやるとか??
投稿日時 - 2011-07-04 21:10:34
この回答を支持する
(現在0人が支持しています)
お礼
ありがとうございます。

皆様のコメントを参考にしつつあれこれいじくった結果、どうやら改行というより
AjaxのXMLHttpRequest.responseTextをそのまま$.parseJSONでパースしようとしていることが原因のようでした。

改行文字がだめというのはエンターキーで改行したものも含むんですかね。
そのあたりが疑問です。
投稿日時 - 2011-07-05 14:51:33
この質問は役に立ちましたか?
2人が「このQ&Aが役に立った」と投票しています
もっと聞いてみる

関連するQ&A

この他の関連するQ&Aをキーワードで探す

関連するガイド記事

    回答募集中

    同じカテゴリの人気Q&Aランキング

    カテゴリ
    JavaScript
    -PR-

    OKWaveのおすすめ情報

    -PR-

    特集

    このQ&Aの関連キーワード

    同じカテゴリの人気Q&Aランキング

    カテゴリ
    JavaScript
    -PR-

    回答のついた最新のQ&A

    カテゴリ
    JavaScript

    rss

    YamiYun

    DoubtOwl

    DreamyLife_615

    Q_iconjsdo.itとMonacaについて2014-05-13 23:32:38

    shylock

    ピックアップ

    -PR-
    -PR-