2017-04-13 4 views
2

Ich habe unter json Daten. Das Problem ist auf dem letzten Feld "totalChildMillis" : NumberLong(2). Die NumberLong(2) wird nicht zitiert. Wenn ich JSON.parse ausführen, habe ich eine Ausnahme zu diesem Feld. Gibt es eine Möglichkeit für JSON.parse, doppelte Anführungszeichen zu ignorieren? Ich möchte die Saite nicht selbst vorparsieren, also suche ich nach einer Möglichkeit, dies automatisch für mich zu handhaben.Unterstützt JSON.parse Parsing String ohne Anführungszeichen

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

Nein bekommen, es ist ungültig json. Wenn Sie eine Methode mit einem Parameter übergeben möchten, können Sie zwei separate Felder erstellen und dann so etwas wie window [data.totalChildMethod] .call (data.totalChildMillis); – nixkuroi

+0

Wer produzierte über JSON? Sie oder eine dritte Partei? – engineforce

+0

Mongodb kann Ausgaben produzieren wie 'NumberLong (2)' – Guig

Antwort

1

Dies ist keine gültige Json, scheitern JSON.parse wird so zu Recht. Es scheint, dass Sie es eine gültige Json indem

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

und dann

JSON.parse(jsonString) 

Wenn NumberLong kommt von Mongo, wahrscheinlich Sie es zur Ausgabe eines gültigen json

direkt
Verwandte Themen