Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 高效解析JSON_Javascript_Jquery_Json - Fatal编程技术网

Javascript 高效解析JSON

Javascript 高效解析JSON,javascript,jquery,json,Javascript,Jquery,Json,所以我通过一个JSON对象进行解析 if(val.function1!==""){ $("#contentFunction").text(val.function1); } if(val.function2!==""){ $("#contentFunction").text(val.function1 + "; " + val.function2); } if(val.function3!==""){ $("#contentFunction").text(val.fu

所以我通过一个JSON对象进行解析

if(val.function1!==""){
    $("#contentFunction").text(val.function1);
}

if(val.function2!==""){
    $("#contentFunction").text(val.function1 + "; " + val.function2);
}

if(val.function3!==""){
    $("#contentFunction").text(val.function1 + "; " + val.function2
        + "; " + val.function3);
}
如果有更好的方法来检查我的json对象属性是否为空,而不是有大量的条件,我会非常满意。。。例如,如果我有多达
val.function10

感谢您的帮助

类似的工具将帮助您枚举函数和属性。

var strs=[];
var strs = [];
for (var i = 0; i < 10; i++) {
  var value = val["function" + i];
  value && strs.push(value);
}
$("#contentFunction").text(strs.join("; "));
对于(变量i=0;i<10;i++){ var值=val[“函数”+i]; 值和标准推送(值); } $(“#contentFunction”).text(strs.join(“;”);
像这样的东西

var content = "";

for (var prop in val) {
    if (!val.hasOwnProperty(prop)) continue;

    if (val[prop] !== "") {
         content += "; " + val[prop];
    }
}
或在node.js(或现代浏览器)中:


“function10”仅仅是一种代码味道,正确地重构它。我在想,我应该从服务器上获取整个功能元素列表,而不是每个单独的元素。。。这样我就可以附加它正确的json应该是
{function:[…]}
这仍然可以附加空字符串,我担心。。。但是它越来越近了,我想如果我们只是添加一个条件来检查val[“function”+i]==“我们应该很好。。。谢谢你,雷诺斯!我刚发完帖子就看到了。。。美好的
var c = Object.keys(val).filter(function (k) { 
    return val[k] !== ""; 
}).map(function (k) { 
    return val[k]; 
}).join("; ");