Как удалить косые черты в данных в формате JSON в Mongo с помощью Nodejs? - PullRequest
4 голосов
/ 23 января 2012

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

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

Ответы [ 2 ]

5 голосов
/ 23 января 2012

здесь 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 голос
/ 23 января 2012

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

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

Косой черты нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...