2016-08-25 7 views
2

У меня есть объект я создаю который выглядит следующим образом:кавычки значения с JSON.stringify

let outputOut = { 
    "_id": id[i], 
    "regNum": code[i], 
    "sd": sd[i], 
    "pd": ptOut, 
    "p": p[i], 
...} 
//output 
fs.writeFile('./output/file.json', JSON.stringify(output, null, 2), 'utf-8'); 

Однако, мне нужно значение «р» в этом объекте должны быть завернуто в кавычках. As-it просто распечатывает значения без кавычек.

Я попытался убежать в кавычки, с помощью:

"p": "\"" + p[i] + "\"'", 

, которая получается как this, я тоже пытался это сделать:

"p": '"' + p[i] + '"', 

Какие выходы this.

Как получить значения p, которые будут обернуты в кавычки, т. Е. "139500000"?

+0

Если значение является строкой, то он будет выводиться в кавычки. Это то, что вы хотите? Если это так, все, что вам нужно, это быстрый шаг предварительной обработки для преобразования значения свойства 'p' в строку. –

ответ

1

мне нужно «р» значение в этом объекте должны быть завернуто в кавычках.

Другими словами, эти значения должны быть строки. Строки в JSON представлены как "...". Кажется, p[i] - это номер. Можно явно преобразовать значение в строку с помощью вызова String(x) или x.toString():

"p": String(p[i]), 
+0

Интересное решение, я должен был это осознать, спасибо! – Edon

-1

Это работает для меня.

var value = 1023; 

var p = '\"'+ value + '\"'; 
console.log(p); 

Вы можете проверить скрипту, которую я создал.

https://jsfiddle.net/Refatrafi/1dkhjpjw/

+0

Ум, какова цель обратной косой черты? –

+0

Это создаст строку, которая буквально содержит кавычки. JSON будет выглядеть как "p": "\" 123 \ "" 'который, вероятно, не тот, который хочет OP. –

+0

@FelixKling да, я пробовал это решение. Но обратная косая черта появляется в JSON, и я не могу заставить их уйти – Edon

1

Строки многозначного свойства будет строковым как строка, то есть в кавычках.

let outputOut = { 
    "_id": id[i], 
    "regNum": code[i], 
    "sd": sd[i], 
    "pd": ptOut, 
    "p": String(p[i]), 
     ^^^^^^^^^^^^ 
...} 

Другая идея состоит в том, чтобы использовать параметр replacer для JSON.stringify:

JSON.stringify(output, function(key, value) { 
    if (key === 'p') value = String(value); 
    return value; 
});