我有这个if语句寻找json对象:

updateStudentData = function(addUpdateData) {
    var rowDataToSave;

    if(addUpdateData.data.row) {
        rowDataToSave = addUpdateData.data.row;
    } else {
        rowDataToSave = addUpdateData.data;
    }
}


谁能告诉我如何检查json是否具有行对象?目前,我无法读取未定义的行属性。

最佳答案

您有几种选择:

1.测试真实性

if (addUpdateData.data && addUpdateData.data.row) {


这将是最适合您的情况,因为您希望addUpdateData.data是对象引用。

仅在属性可能具有伪造的值(例如0""NaNnullundefined或(当然)false)时,才真正需要接下来的两个选择,但是您仍然想要知道物业是否在那里。

2. hasOwnProperty

if (addUpdateData.hasOwnProperty("data") && addUpdateData.data.row) {


这将检查addUpdateData是否具有称为“ data”的“自有”(未继承)属性。在您的情况下没有必要。

3. in

if ("data" in addUpdateData && addUpdateData.data.row) {


这将检查addUpdateData是否具有data属性(它自己的属性还是它继承的属性)。在您的情况下没有必要。

07-28 09:48