Javascript 如何将项目推送到json文件?
我是javascript的新手,想知道如何将值推送到json。 我试图在谷歌上搜索,但找不到任何我想要的解决方案 下面是我的代码,用于导入javascriptJavascript 如何将项目推送到json文件?,javascript,json,push,Javascript,Json,Push,我是javascript的新手,想知道如何将值推送到json。 我试图在谷歌上搜索,但找不到任何我想要的解决方案 下面是我的代码,用于导入javascript var jsonfile = {channel: []}; function WebSocket(){ if ("WebSocket" in window){ var channel = "hello"; var socket = io.connect("my socket address"); socket
var jsonfile = {channel: []};
function WebSocket(){
if ("WebSocket" in window){
var channel = "hello";
var socket = io.connect("my socket address");
socket.on(channel, function (d) {
var data = JSON.parse(d);
//console.log(channel + " : " + d);
var theDiv = document.getElementById(data.node_info[1].info.mac);
if(theDiv == null) {
var divTag = document.createElement("div");
divTag.id = data.node_info[1].info.mac; //"drag1"
divTag.className = "draggable js-drag";
divTag.innerHTML = data.node_info[1].info.mac;
document.getElementsByTagName('body')[0].appendChild(divTag);
jsonfile.channel.push(divTag.id);
console.log(jsonfile)
//console.log(jsonfile.channel.length);
//$('#'+data.node_info[1].info.mac).load('#'+data.node_info[1].info.mac);
}
});
socket.on('crc_err', function(packet){
console.log("crc_err : " + packet);
});
socket.on('type_err', function(packet){
console.log("type_err : " + packet);
});
}
else{
// The browser doesn't support WebSocket
// alert("WebSocket NOT supported by your Browser!");
}
}
我将mac地址从webSocket推送到var jsonfile,然后想将其他值推送到该mac地址,如下面的代码所示
for (i = 0; i <= jsonfile.channel.length; i++){
if($(jsonfile.channel[i]).css('left') != 0){
jsonfile.channel[i].push([$(jsonfile.channel[i]).css('left')]); ------>ERROR
console.log(jsonfile.channel[i]);
}
我如何解决这个问题。。。?
有人帮我吗
提前感谢。在本例中,jsonfile.channel是一个数组,它的原型链中有一个push方法
Array.push将新项添加到数组的末尾。您尝试使用的数据结构不是有效的javascript。JavaScript中的数组可以容纳许多不同的数据类型,但它是一个简单的数据结构;数组中没有关联的概念。数组只是一个有序的值列表,从元素0的项开始,到元素n的项结束,其中n是数组-1的长度,因为我们从0开始
在本例中,您正在将mac地址的字符串值推送到jsonfile.channel数组中。字符串值没有push方法,因此出现错误,您看到的是jsonfile.channel[i]。push不是函数
我认为您需要的是使用嵌套对象,这将为您提供存储多个关联值的选项,因此如下所示:
jsonfile={channel:{B8:27:EB:FF:7B:45:$jsonfile.channel[i].css'left'}
如果要添加到新对象,只需执行以下操作:
jsonfile.channel['XX:XX:XX:XX:XX']=$jsonfile.channel[i].css'right'
其中XX:XX:XX:XX:XX:XX是jsonfile.channel对象中项的键名
我建议您仔细阅读不同的JavaScript数据类型,以找到最适合您需要的内容。在网上提供的众多免费JavaScript入门课程中选择一门,这将是明智的时间投资
我希望这是有用的。如果有任何不清楚的地方,请随时跟进。修复此错误:i i
jsonfile = {channel: ["B8:27:EB:FF:7B:45" : [$(jsonfile.channel[i]).css('left')]]}