我有这样的功能
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)
两次解决,但这是完全错误的。我还能做什么?
答案 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

希望这有帮助。