【发布时间】:2011-07-17 09:10:07
【问题描述】:
- 如何删除具有空值的键并形成新的 json。
- 如何迭代这个响应......我想在哪里显示......这个键 ==> 对应的值。
【问题讨论】:
标签: javascript
【问题讨论】:
标签: javascript
1:这将删除任何虚假值,即 Null、未定义或空字符串。不过,您可以专门检查空值。确保你阅读并理解 delete 的作用,它会给很多人带来麻烦。
for(var key in someObject) {
if(!someObject[key]) {
delete someObject[key];
}
}
2:您可以像这样迭代对象的所有属性和值:
for(var key in someObject) {
console.log("The value of " + key + " is " + someObject[key]);
}
【讨论】:
对于初学者,请修复您的 javascript 对象,因为您发布的内容充满了错误。一旦你有一个有效的数组:
var values = [{
'SPO2': 222.00000,
'VitalGroupID': 1152,
'Temperature': 36.6666666666667,
'DateTimeTaken': '/Date(1301494335000-0400)/',
'UserID': 1,
'Height': 182.88,
'UserName': null,
'BloodPressureDiastolic': 80,
'Weight': 100909.090909091,
'TemperatureMethod': 'Oral',
'Resprate': null,
'HeartRate': 111,
'BloodPressurePosition': 'Standing',
'VitalSite': 'Popliteal',
'VitalID': 1135,
'Laterality': 'Right',
'HeartRateRegularity': 'Regular',
'HeadCircumference': '',
'BloodPressureSystolic': 120,
'CuffSize': 'XL'
}, {
'SPO2': 100.00000,
'VitalGroupID': 1113,
'Temperature': 32.7777777777778,
'DateTimeTaken': '/Date(1299856980000-0500)/',
'UserID': 1,
'Height': 0,
'UserName': 'Admin',
'BloodPressureDiastolic': 78,
'Weight': 49895.1607,
'TemperatureMethod': '',
'Resprate': null,
'HeartRate': null,
'BloodPressurePosition': 'Sitting',
'VitalSite': '',
'VitalID': 1096,
'Laterality': '',
'HeartRateRegularity': 'Regular',
'HeadCircumference': '',
'BloodPressureSystolic': 120,
'CuffSize': ''
}];
然后你可以循环遍历它:
for (var i = 0; i < values.length; i++) {
// this will run for each element of the initial array
for (var propertyName in values[i]) {
// this will run for each property of the element
var propertyValue = values[i][propertyName];
if (propertyValue == null) {
// if the value is null remove it
delete values[i][propertyName];
} else {
console.log('name: ' + propertyName + ', value: ' + propertyValue);
}
}
}
Demo.
【讨论】:
删除属性:
if (objectName.propertyName === null) {
delete objectName.propertyName;
}
迭代抛出属性:
for (var key in objectName) {
document.write(objectName[key]);
}
【讨论】:
undefined 和 null 具有相似的语义。使用==更稳定
var array_of_json_hashes;
var result = [];
for(var i = 0; i < array_of_json_hashes.length; i++) {
result[i] = {};
var h = array_of_json_hashes[i];
for (var key in h) {
console.log(key);
console.log(h[key]);
if (h.hasOwnProperty(key)) {
if(h[key]) {
result[i][key] = h[key];
}
}
}
}
console.log(result);
【讨论】:
这可能对你有帮助:
1) 测试 = ["1","2","3","4","",""];
2) var delete = JSON.stringify(test);
case1) delete = delete.replace(/\,""/g,'');
或
case2) delete = delete.replace(/\," "/g,'');
或
case3) delete = delete.replace(/\,null/g,'');
3) var 结果 = JSON.parse(delete);
【讨论】: