2017-11-28 24 views
5

이러한 유형의 질문을보고 해결책을 시도했지만 작동하지 않았습니다.JSON.Parse Faker.js에서 문자열을 JSOn으로 구문 분석하는 동안 위치 0의 오류 표시

내가 컨트롤러에 UI에서 배열을 보내고이 나는 Node.js를에 faker.js에 대한 참조가

컨트롤러에 내 코드 :

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 

에서 작업에 대한 예상 코드 Faker.js는

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

어떻게 접근합니까?

+0

'faker.name.firstName'은 함수이므로 평가해야합니다. –

+0

@ GrégoryBourgin 예. 그 작은 따옴표 (')가 없으면 작동합니다. 배열에는 성 등 여러 필드가있을 수 있습니다. –

답변

0

JSON.stringify은 "([ '+/g,'그렇지 않으면 당신은 그것을 구문 분석 할 수 없습니다 당신은 /]) Usercheck.replace로 제거 할 수 없습니다, 모든 키 주위에" '별도의 추가

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

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

여기에 숫자가 모두 문자 (문자열)로 존재하지 않습니다. 원하는 형식은 {e : sdfsfd}이지만 {e : 'sdfsfd'}와 같습니다. –

+0

값에 대해서는 신경 쓰지 않습니다. 귀하의 경우에있는 " "FirstName"을 사용하면 더 이상 유효하지 않은 JSON 문자열을 구문 분석 할 수 없으며 faker.name.firstName()을 값에 저장할 수없고이 호출 결과를 저장합니다 – Dafuck

+0

ok 값에서 인용 부호를 제거하는 방법 –