Javascript 我正试图从用户输入的JSON文件中获取一些数据
我得到这个JSON错误,它告诉我我有一个语法错误,我不知道我在哪里犯了这个错误。我已经提供了代码,以防有帮助Javascript 我正试图从用户输入的JSON文件中获取一些数据,javascript,node.js,json,Javascript,Node.js,Json,我得到这个JSON错误,它告诉我我有一个语法错误,我不知道我在哪里犯了这个错误。我已经提供了代码,以防有帮助 var isNode= typeof module !=="undefined" var clientData; var auxClientData; var aux=[]; var k=0; if (!isNode) { var storedObjects=JSON.parse(localStorage.getItem("objects")); console.log(storedO
var isNode= typeof module !=="undefined"
var clientData;
var auxClientData;
var aux=[];
var k=0;
if (!isNode)
{
var storedObjects=JSON.parse(localStorage.getItem("objects"));
console.log(storedObjects);
var ok=false;
buttonConfirm.addEventListener("click",function(){
for(var i=0;i<inputs.length;i++)
{
var inputShow=inputs[i].value;
if (inputShow!=null && inputShow!="")
{
aux[k++]=inputShow;
}
else
{
alert("ALL THE FIELDS MUST BE COMPLETED! ");
ok=true;
break;
}
}
clientData={fullName:aux[0],emailAddress:aux[1],phoneNumber:aux[2]};
//localStorage.setItem("clientData",JSON.stringify(clientData));
// console.log(clientData);
if (ok==true){
alert("THANK YOU FOR YOUR PURCHASE! CHECK YOUR E-MAIL")
}
console.log(JSON.parse(JSON.stringify(clientData)));
})
}
else
{
var clientData={"fullName":aux[0],"emailAddress":aux[1],"phoneNumber":aux[2]};
var fs=require("fs");
auxClientData=JSON.stringify(clientData);
fs.writeFile("clients.json",auxClientData,finished)
function finished()
{
console.log("ok");
var ok=fs.readFileSync("clients.json");
var test=JSON.parse(ok);
console.log(test);
}
}
var isNode=模块类型==“未定义”
var-clientData;
var auxClientData;
var aux=[];
var k=0;
如果(!isNode)
{
var storedObjects=JSON.parse(localStorage.getItem(“对象”);
控制台日志(存储对象);
var-ok=false;
buttonConfirm.addEventListener(“单击”,函数(){
对于(var i=0;i我刚刚意识到问题是什么:
var clientData;
auxClientData=JSON.stringify(clientData);
else语句中的clientData从未设置,并且将未定义。因此,您需要在else语句中重新定义它。aux需要在程序的更高范围内可用,才能正常工作。您可以通过手动将clientData设置为else语句中的其他内容来确认我的假设
else
{
var fs=require("fs");
clientData={"fullName":aux[0],"emailAddress":aux[1],"phoneNumber":aux[2]};
auxClientData=JSON.stringify(clientData);
fs.writeFile("clients.json",auxClientData,finished)
function finished()
{
console.log("ok");
}
var ok=fs.readFileSync("clients.json");
var test=JSON.parse(ok);
console.log(test);
}
------------------------------你的密码
var isNode = typeof module !== "undefined"
var clientData;
var auxClientData;
var aux = [];
var k = 0;
if (!isNode) {
// INSIDE THE IF
var storedObjects = JSON.parse(localStorage.getItem("objects"));
console.log(storedObjects);
var ok = false;
//add a listener inside the if statement for the click.
buttonConfirm.addEventListener("click", function () {
// when it is clicked.
for (var i = 0; i < inputs.length; i++) {
var inputShow = inputs[i].value;
if (inputShow != null && inputShow != "") {
//POPULATE THE AUX ARRAY adding one to k each time?
// seems weird, why is this not aux[i] = inputShow;
aux[k++] = inputShow;
}
else {
alert("ALL THE FIELDS MUST BE COMPLETED! ");
ok = true;
break;
}
}
clientData = { fullName: aux[0], emailAddress: aux[1], phoneNumber: aux[2] };
//localStorage.setItem("clientData",JSON.stringify(clientData));
// console.log(clientData);
if (ok == true) {
alert("THANK YOU FOR YOUR PURCHASE! CHECK YOUR E-MAIL")
}
console.log(JSON.parse(JSON.stringify(clientData)));
})
}
else {
//inside the else.
//aux is an empty array here. so aux[0] = undefined, aux[1] = undefined etc.
//i.e. the button hasn't been pressed to populate it at this point.
var clientData = { "fullName": aux[0], "emailAddress": aux[1], "phoneNumber": aux[2] };
var fs = require("fs");
auxClientData = JSON.stringify(clientData);
fs.writeFile("clients.json", auxClientData, finished)
function finished() {
console.log("ok");
var ok = fs.readFileSync("clients.json");
var test = JSON.parse(ok);
console.log(test);
}
}
var isNode=模块类型!=“未定义”
var-clientData;
var auxClientData;
var aux=[];
var k=0;
如果(!isNode){
//在IF内部
var storedObjects=JSON.parse(localStorage.getItem(“对象”);
控制台日志(存储对象);
var-ok=false;
//在单击的if语句中添加侦听器。
buttonConfirm.addEventListener(“单击”),函数(){
//当它被点击时。
对于(变量i=0;i
您的错误表明它无法解析JSON。您试图解析什么“JSON”?localStorage.getItem(“对象”)
,以及ok
(fs.readFileSync(“clients.JSON”)
),这些值是什么?您正在尝试将“objects”项从本地存储解析为JSON。此项的值可能未格式化为正确的JSON。听起来您没有JSON。请看您正在解析的内容。console.log()是您的朋友。clientData={“fullName”:aux[0],“emailAddress”:aux[1],“phoneNumber”:aux[2]};看起来像?@NeilLocketz对象一是我用来从上一页获取数据的东西,ok只是一个变量谢谢,现在的问题是aux[0]、aux[1]和aux[2]。我无法读取未定义的属性“0”。当我为每个“aux”设置值时,我会遇到类似的情况:for(var i=0;我说,您需要检查该变量(无论它来自何处)在范围内,以便在程序的该点使用。您的问题中没有说明aux的定义位置或定义方式。我建议您使用更完整的代码详细信息更新您的问题。aux变量仅填充在按钮处理程序中的第一个if语句中,因此在尝试和在else语句中访问它。参见上文。在我创建了aux和k全局变量之后,在JSON文件中我得到了一个空的{}以便填充它。我必须在else语句中获得相同的代码吗?当使用nodeJS时,这行得通吗?