不能在JSON上使用点表示法

时间:2015-12-31 18:29:02

标签: javascript json

我有这样的功能

data = JSON.parse(data)

其中data是第一个,像这样的字符串

"{\"content\":\"Hello there\",\"uid\":\"OoIEfsgabT89EJw\",\"createdAt\":1451586225268,\"user\":{\"avatar\":\"https://avatars.com/123?v=3\",\"login\":\"login\",\"name\":\"Username\",\"uid\":123}}"�

现在转换的数据是

{"content":"Hello there","uid":"OoIEfsgabT89EJw","createdAt":1451586225268,"user":{"avatar":"https://avatars.com/126?v=3","login":"login","name":"Username","uid":123}}

当我尝试访问data.uid时,我看到undefined。我究竟做错了什么?

编辑:代码

addItem: function(data) {
  data = JSON.parse(data)

  console.log("Adding: "+data)
  console.log("Adding: "+data.uid)
},

edit2:JSON是双重编码的 做data = JSON.parse(data)两次解决,但这是完全错误的。我还能做什么?

1 个答案:

答案 0 :(得分:1)

如果你在开头和结尾使用双引号"来创建一个字符串变量而不是JSON,你应该直接使用它。

工作示例:



var data = {"content":"Hello there","uid":"OoIEfsgabT89EJw","createdAt":1451586225268,"user":{"avatar":"https://avatars.com/126?v=3","login":"login","name":"Username","uid":123}};

console.log(data.uid); //OoIEfsgabT89EJw




不工作示例:



var data='{"content":"Hello there","uid":"OoIEfsgabT89EJw","createdAt":1451586225268,"user":{"avatar":"https://avatars.com/126?v=3","login":"login","name":"Username","uid":123}}'

console.log(data.uid); //undefined




希望这有帮助。