Javascript 未捕获类型错误:无法读取属性';wsname';未定义的
我正在尝试使用以下代码(login.js)从数据库中获取值 但是我得到了Javascript 未捕获类型错误:无法读取属性';wsname';未定义的,javascript,jquery,json,Javascript,Jquery,Json,我正在尝试使用以下代码(login.js)从数据库中获取值 但是我得到了未捕获的TypeError:无法读取此行中未定义的属性“wsname”错误objwsname=obj[0][“wsname”] 我确信获得正确的数据会看到这一点 我在html中使用以下脚本 <script src="js/jquery.js"></script> <script src="js/jquery.mobile-1.0rc1.min.js"></script> &l
未捕获的TypeError:无法读取此行中未定义的属性“wsname”
错误objwsname=obj[0][“wsname”]代码>
我确信获得正确的数据会看到这一点
我在html中使用以下脚本
<script src="js/jquery.js"></script>
<script src="js/jquery.mobile-1.0rc1.min.js"></script>
<script src="jqm.autoComplete-1.5.2-min.js"></script>
<script src="src\jquery.tabletojson.js"></script>
<script type="text/javascript" src="js/login.js"></script>
应该是这样的:
objwsname = obj.wsname;
obj是一个对象而不是数组
如果传递给JSON.parse
的JSON
字符串包含一个数组,那么它将返回一个数组。在您的例子中,一个包含JSON
对象的字符串被传递到JSON.parse
——因此它返回了一个对象 因为这只是一个对象,而不是一个包含一个或多个对象的数组,所以不需要提供索引[0]
:
或:
可以这样做以获取wsname
如果你有一个数组来保存一个对象,那么你就必须用它的索引来获取它,比如:
// suppose this is the data
data = [{"foo":"bar"}, {"foo":"baz"}];
// ^----0------^ ^-----1-----^ // indexes of the objects inside data array.
所以这两个:
alert(data[0].foo); // alerts bar
alert(data[0]['foo']); // alerts bar
这里你需要索引。我只是想知道发生了什么,我使用这种方式是因为中提供了答案。这取决于JSON
是什么。在您提到的那个问题中,它们引用的是对象数组JSON
。在您的例子中,您使用的是对象,而不是数组。如果传递给JSON.parse
的JSON
字符串包含一个数组,那么它将返回一个数组。在您的例子中,一个包含JSON对象的字符串被传递到JSON.parse
——因此它返回了一个对象!
objwsname = obj.wsname;
// suppose this is the data
data = [{"foo":"bar"}, {"foo":"baz"}];
// ^----0------^ ^-----1-----^ // indexes of the objects inside data array.
alert(data[0].foo); // alerts bar
alert(data[0]['foo']); // alerts bar