2017-04-13 4 views
2

以下のJSONデータがあります。問題は最後のフィールド"totalChildMillis" : NumberLong(2)にあります。 NumberLong(2)は引用されていません。 JSON.parseを実行すると、このフィールドに関する例外が発生しました。 JSON.parseの二重引用符を無視する方法はありますか?私は自分で文字列をあらかじめ解析したくないので、自動的にこれを処理する方法を探しています。JSON.parseは二重引用符を使用せずに文字列を解析できます

{ 
    "executionStages" : { 
    "stage" : "SINGLE_SHARD", 
    "nReturned" : 10000, 
    "executionTimeMillis" : 3, 
    "totalKeysExamined" : 0, 
    "totalDocsExamined" : 10000, 
    "totalChildMillis" : NumberLong(2) 
    } 
} 
+0

をそれを得ることができ、

var jsonString = rawString.replace(/NumberLong\((\d*)\)/g, "$1") 

、その後

JSON.parse(jsonString) 

を実行することにより有効なJSON作ることができそうですそれは無効なjsonです。パラメータを持つメソッドを渡す場合は、それらを2つの別々のフィールドにしてから、window [data.totalChildMethod] .call(data.totalChildMillis)のような処理を行います。 – nixkuroi

+0

上記のJSONは誰が作成しましたか?あなたまたは第三者ですか? – engineforce

+0

Mongodbは 'NumberLong(2)'のような出力を生成できます – Guig

答えて

1

これは有効なJSONではありませんので、JSON.parseは当然失敗します。あなたがNumberLongはモンゴから来ている場合、あなたはおそらくありません出力に有効なJSON直接

関連する問題