Javascript 在迭代有效的JSON时,无法将未定义或null转换为对象

Javascript 在迭代有效的JSON时,无法将未定义或null转换为对象,javascript,json,loops,Javascript,Json,Loops,我有这个结构的有效JSON const myJSONExample = { "SubItems": [ { "SubItems": [ { "ItemNo": "000001" } ], "ItemNo": null, "Number": null, "price": 114.46 }, { "SubItems": [ {

我有这个结构的有效JSON

const myJSONExample = {
  "SubItems": [
    {
      "SubItems": [
        {
          "ItemNo": "000001"
        }
      ],
      "ItemNo": null,
      "Number": null,
      "price": 114.46

    },
    {
      "SubItems": [
        {
          "Group": "0.4.004"
        }
      ],
      "type": null
    },
    {
      "SubItems": [
        {
          "ItemNo": "000005"
        },
        {
          "Quantity": 2
        }
      ],
      "Material": "Steel"
    },
    {
      "Description": null
    }
  ]
}
只是简单地尝试格式化其中的所有数字类型,使用递归迭代

const iterate = (obj) => {
    Object.keys(obj).forEach(key => {

    if(typeof(item[key]) == "number"){
                            item[key] = new Intl.NumberFormat("de-DE").format(item[key]) //format number for german lang.
                        }

    if (typeof obj[key] === 'object') {
            iterate(obj[key])
        }
    })
}

iterate(myJSONExample);
我在其他JSON上使用了这个函数,并试图理解为什么会抛出
TypeError:cannotconvert undefined或null-to-object

null是一个“object”,这就是你的问题。所以加上一张真实的支票

const iterate = (obj) => {
  Object.keys(obj).forEach(key => {

    const value = obj[key]
    const valueType = typeof value

    if (valueType === "number") {
      obj[key] = new Intl.NumberFormat("de-DE").format(value)
    } else if (valueType === 'object' && value) {
      iterate(value)
    }
  })
}
null是一个“对象”,因此是您的问题。所以加上一张真实的支票

const iterate = (obj) => {
  Object.keys(obj).forEach(key => {

    const value = obj[key]
    const valueType = typeof value

    if (valueType === "number") {
      obj[key] = new Intl.NumberFormat("de-DE").format(value)
    } else if (valueType === 'object' && value) {
      iterate(value)
    }
  })
}

null是一个objectnull是一个object谢谢。但你的意思是obj[key]而不是item[key],对吗?谢谢。但你的意思是obj[key]而不是item[key],对吗?