我有一个像这样的JSON:
{
"livingroom": [],
"bedroom": [],
"study": [
{
"name": "s0",
"thumbnail": "https://storage.googleapis.com/peterbucket/0/small_istagingViewer/sig@staging.com.tw/Cuiti/study/web/螢幕快照 2016-03-29 下午2.12.32.png",
"web": "https://storage.googleapis.com/peterbucket/istagingViewer/sigstaging.com.tw/Cuiti/study/web/201603292.12.32.png"
}
],
"outdoor": [],
"other": [],
"id": "-KE5spXGRjC_9WSIh_eN",
"name": "Cuiti",
"categoryCount": 1,
"panoramaCount": 1
}
我想只排除[]
。我尝试了value.length > 0
,但是因为某些值不是数组而引发错误。
什么是最好的解决方案?
答案 0 :(得分:2)
您可以使用Array.isArray()
检查某些内容是否为数组:
if (Array.isArray(value) && value.length > 0) { }
如果需要,请使用MDN中的此填充:
if (!Array.isArray) {
Array.isArray = function(arg) {
return Object.prototype.toString.call(arg) === '[object Array]';
};
}
答案 1 :(得分:2)
首先,您的示例不是JSON,它是一个Javascript对象。为了从这个对象中删除空数组,你可以像这样检查它
for(var key in yourObject){
var value = yourObject[key];
if(Array.isArray(value) && value.length === 0){
delete yourObject[key];
}
}
答案 2 :(得分:1)
您可以使用constructor
属性检查值是否为数组,然后检查值的长度
for(var key in items){
var value=items[key];
if(value.constructor===Array && value.length === 0){
delete items[key];
}
}
答案 3 :(得分:1)
您可以使用instanceof运算符
$filename = "file.txt";
$content = file_get_contents($filename);
$lines_array = explode(PHP_EOL, $content);
//overwrite the line that you want.
$lines_array[5] = "New text at line 6!";
file_put_contents($filename, implode(PHP_EOL, $lines_array));