javascript - Unable to get key defined -
suppose response {"errmsg":"error_bb"}
or {"msg":"i bb"}
.
var jsonparsed = json.parse(response);// ok, works var key = object.getownpropertynames(jsonparsed);// key can msg or errmsg, ok, works if("errmsg" == key) { throw ("error says:"+jsonparsed.key); //it cannot work if jsonparsed.errmsg, works } else { alert("data says:"+jsonparsed.key); //it cannot work if jsonparsed. msg, works }
i alert:
the error says value undefined
why since key seems defined comparison condition can determined.
i not able throw or produce alert msg. however, if key replaced errmsg or msg shown in comments works.
well, jsonparsed
doesn't have property key
, it? either has errmsg
or msg
, said. it's not surprising jsonparsed.key
undefined
.
if want access property name contained in variable, have use bracket notation:
obj[prop]
but there more: object.getownpropertynames
returns array of property names. while "errmsg" == key
might work because of implicit type coercion, want first element of array:
var key = object.getownpropertynames(jsonparsed)[0]; // first element if("errmsg" === key) { throw ("error says:"+jsonparsed[key]); } else { alert("data says:"+jsonparsed[key]); }
Comments
Post a Comment