2017-11-28 212 views
5

Widziałem tego typu pytania i próbowałem rozwiązań, ale nie działało.JSON.Parse Pokazuje błąd w pozycji 0 podczas analizowania łańcucha znaków do JSOn w Faker.js

przesyłam tablicę z interfejsu do sterownika, nie mam odniesienia dla faker.js w node.js

Mój kod w kontrolerze:

var FirstName = req.body;     // req.body has array 
console.log(FirstName);      // **Prints** { FirstName: 'faker.name.firstName()' } 
const User = FirstName;      // Didnt work because faker.name.firstName is as string 
const Usercheck = JSON.stringify(GettingData[0]); 
var response = Usercheck.replace(/['"]+/g,'') 
console.log(response);      // Here it removed the quotations but took total as string. "{ FirstName: faker.name.firstName()}" 
JSON.parse(response);  // Tried to parse string as JSON but this shows the error at position 0 

Kod spodziewane do pracy w Faker.js to

const User = { FirstName: faker.name.firstName() } // Hard code and run this it is working fine 

Jak do tego podejść.

+0

'faker.name.firstName' jest funkcją i musi zostać oceniony –

+0

@ GrégoryBourgin tak, tak, jeśli otrzymam bez tego pojedynczego cudzysłowu (') to zadziała. Tablica może mieć jeszcze wiele pól, takich jak nazwisko itp., –

Odpowiedz

0

JSON.stringify dodać ekstra "wokół wszystkich kluczy, nie można usunąć je z Usercheck.replace (/ [""] +/g, ''), w przeciwnym razie nie można przetworzyć go:

var a = JSON.stringify({e:5}) 
console.log(a) // {"e":5} 

JSON.parse(a); // ok 
JSON.parse("{e:5}"); // nok 
+0

tutaj nie ma żadnego numeru zarówno w znakach (ciąg). Tutaj pożądany format to {e: sdfsfd}, ale mam {e: 'sdfsfd'} –

+0

Nie dbamy o wartość, co próbuję ci wytłumaczyć, jeśli usuniesz "wokół KEY, który jest w twoim przypadku "FirstName", nie będzie można przetworzyć łańcucha, ponieważ nie będzie on już prawidłowym JSON.Nie można zapisać faker.name.firstName() w wartości, przechowuje wynik tego połączenia – Dafuck

+0

ok , ale otrzymuję wartość z cytatem Jak usunąć ten cytat z wartości –