2012-01-23 3 views
4

Я храню данные в таблице mongo в формате JSON, используя Nodejs и mongoskin. Mongo автоматически добавляет косые черты в форматированных json-данных. Затем, когда я извлекаю, я не могу разобрать данные. Пожалуйста, предложите мне, как мне удалить косые черты или как я разбираю данные?Как удалить косые черты в форматированных данных JSON в Mongo с помощью Nodejs?

db.messagetable.find().forEach(printjson) 
{ 
     "_id" : "1861574", 
     "MatriId" : "1861574", 
     "session" : "{\"messages\":{\"cometchat\":{\"timedifference\":0,\"cometchat_buddytime\":0,\"msgavails\":\"\"}}}", 
     "expires" : 1341702134 
} 

ответ

5

здесь slahses используются, чтобы избежать charatcer " в вашем JSON закодированные строки (а не объект JSON, потому что

> JSON.parse("{messages:1}") 
SyntaxError: Unexpected token m 
    at Object.parse (native) 
    at repl:1:7 
    at REPLServer.eval (repl.js:80:21) 
    at Interface.<anonymous> (repl.js:182:12) 
    at Interface.emit (events.js:67:17) 
    at Interface._onLine (readline.js:162:10) 
    at Interface._line (readline.js:426:8) 
    at Interface._ttyWrite (readline.js:603:14) 
    at ReadStream.<anonymous> (readline.js:82:12) 
    at ReadStream.emit (events.js:88:20) 

поэтому ключи должны быть заключены с " представлять собой строку, но вы не можете просто положить " внутри строки. Для того, чтобы зафиксировать, что JSON парсеры добавьте \

> JSON.parse("{\"messages\":1}") 
{ messages: 1 } 

так, когда вы разбираете, просто вызовите JSON.Parse на строку сессии

> JSON.parse("{\"messages\":{\"cometchat\":{\"timedifference\":0,\"cometchat_buddytime\":0,\"msgavails\":\"\"}}}") 
{ messages: 
    { cometchat: 
     { timedifference: 0, 
     cometchat_buddytime: 0, 
     msgavails: '' } } } 
1

Косые черты не находятся в строке. Слэши используются для представления символов, таких как ", потому что " используется как разделитель начала и конца строк.

Если вы были console.logsession этого объекта, который вы напечатали, он будет напечатан без косых черт.

Нет косой черты.