2017-10-17 54 views
1

我有一个将数据写入MySQL后端的Node.js应用程序。一个字段是我串化的数组。我可以在工作台中看到数据库中的数据是正确的。但是,当我检索它时,我在尝试解析它时遇到错误。无法解析从MySQL返回的JSON

“意外令牌○在JSON位置1处的”

如果我登录结果它显示为[Object Object]

从我在线阅读这意味着它已经是一个JS对象,我不需要解析它。但是我找不到有关如何访问数据的任何信息。

process: function (bot, msg, suffix) { 

    var ftcmds = suffix.split(" ", 1); 
    var ftName = ftcmds[0]; 
    var ftArray; 
    var selectSQL = "SELECT FireTeam FROM fireteam WHERE Name = '" + ftName + "'"; 
    var updateSQL = "UPDATE fireteam SET FireTeam = '" + ftArray + "'WHERE Name = '" + ftName + "'"; 

    mysqlcon.query(selectSQL, function (err, result) { 
     console.log("Result |" + result); 
     console.log("Error |" + err); 
     if (err) { 
      console.log("Caught Error " + err + " " + msg.author); 
     } 
     else { 
      console.log("Recovered result " + result); 

      ftArray = result; 
      console.log("Attempting to update array"); 

      ftArray.push(msg.author.id); 
      console.log("updated array " + ftArray); 

      var jsonArray = JSON.stringify(ftArray); 
      mysqlcon.query(updateSQL, function (err, result) { 
       console.log("Result |" + result); 
       console.log("Error |" + err); 

       if (err.toString().indexOf(dupErr) != -1) { 
        msg.author.send("Could not find that fireteam"); 
        console.log("Error: Did not locate the requested name " + msg.author) 
       } else if (err) { 
        console.log("Caught Error " + err + " " + msg.author); 
       } 
       else { 
        msg.author.send("You have joined Fireteam " + name + ". I will setup a group chat on " + date + " if your team fills up."); 
       } 
      }) 
     } 
    }); 
} 

回答

1

你应该只能够访问它作为一个对象,因此,如果结果有字段名称和标题你可以访问它们为:

var name = result.name 
var title = result.title 
+0

如果什么它没有领域?它是一个简单的字符串数组,我想我可能会错误地使用它。 –

+0

然后,您可以以数组的形式访问字符串(例如result [0],result [1]等) –