2016-01-11 64 views
5

Być może dziwne żądanie, ale używam widoków CouchDB, który wymaga, aby ciąg był otoczony podwójnymi cudzysłowami.Zamień pojedyncze cudzysłowy .toString() z podwójnymi cudzysłowami

to działa:

klucz = [ "test", "234"]

To nie zadziała:?

key = [ 'test' , '234']

Tak więc w mojej aplikacji NodeJS próbuję utworzyć poprawny klucz, aby przejść do CouchDB

var key1 = "test"; 
var key2 = "234"; 

{ key: [key1, key2] } 

To zawsze wychodzi jak

{ key: [ 'test', '234' ] } 

Czy istnieje skuteczny sposób, aby mój pożądany wynik? (podwójne cudzysłowy)

+0

@ br3w5 tak nie jest, nie pytam, jak wymienić cytaty w ciągu znaków. Ale raczej jak wypisać ciąg z podwójnym cudzysłowem. –

Odpowiedz

5

CouchDB nie potrzebuje podwójnych cudzysłowów per se; potrzebuje parametrów JSON-encoded.

To dobra wiadomość dla Ciebie! Wystarczy zbudować swój klucz jednak chcesz w JavaScript:

var key = [ 
    'test', 
    '234' 
] 

A potem JSON zakodować go przed wysłaniem do CouchDB:

key = JSON.stringify(key) // Result: the string '["test","234"]' 
+0

To dziwne, tak jak wcześniej próbowałem, ale nie przyniosło to żadnych rezultatów. Być może działo się coś jeszcze, ale założyłem cytaty tam, gdzie jest problem. –

0

Nie testowałem tego, ale wyobrażam sobie, że można użyć String.fromCharCode (34) dla podwójnego cudzysłowu, zamiast wpisywać je bezpośrednio. Więc

var key1 = String.fromCharCode (34) + test + String.fromCharCode (34);

lub nawet

var doubleQuote = String.fromCharCode (34); var key1 = doubleQuote + test + doubleQuote;

1

Nie jest jasne, czy chcesz przekazać obiekt za pomocą kluczy lub ciągi znaków reprezentujących obiekt. Jeśli przekazujesz ciąg znaków, dlaczego nie używasz JSON.stringify, który używa podwójnych cudzysłowów?

var key1 = "test"; 
var key2 = "234"; 
JSON.stringify({key: [key1, keys]}) 

Będzie produde: { "klucz": [ "test", "234"]}

0

Można spróbować tego w swoim node.js aplikacji

var key1 = '"test"'; 
var key2 = '"234"'; 

Będzie w wyniku:

{ 
    key: 
    [ 
     '"test"', 
     '"234"' 
    ] 
} 

Ja nie użyłem CouchDB, być może to rozwiąże twój problem.