问题
I have a json-object, which I print to the screen (using alert()-function):
alert(object);
Here is the result:
Then I want to print the value of the id to the screen:
alert(object["id"]);
The result is this:
As you can see, the value of key "id" is not(!!!) undefined.
What the hell is going on here?!
回答1:
Looks like your json object is not really an object, it's a json string. in order to use it as an object you will need to use a deserialization function like JSON.parse(obj)
. Many frameworks have their own implementation to how to deserialize a JSON string.
When you try to do alert(obj)
with a real object the result would be [object Object] or something like that
回答2:
Your JSON is not parsed, so in order for JavaScript to be able to access it's values you should parse it first as in line 1:
var result = JSON.parse(object);
alert(result.id);
After your JSON Objected is already parsed, then you can access it's values as following:
alert(result.id);
回答3:
You will need to assign that to a var
and then access it.
var object = {id: "someId"};
console.log(object);
alert(object["id"]);
回答4:
In JavaScript, object properties can be accessed with . operator or with associative array indexing using []
. I.e. object.property is equivalent to object["property"]
You can try:
var obj = JSON.parse(Object);
alert(obj.id);
来源:https://stackoverflow.com/questions/44729266/javascript-says-json-object-property-is-undefined-although-its-not