Javascript 未捕获类型错误:无法读取属性';wsname';未定义的

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

我正在尝试使用以下代码(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>
<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