Javascript 即使使用angular.fromJson()也无法从json对象访问字符串
无法访问Javascript 即使使用angular.fromJson()也无法从json对象访问字符串,javascript,angularjs,scope,Javascript,Angularjs,Scope,无法访问数据。名称字符串。我使用的方法如下。下面提到的方法返回一个错误。我是AngularJS的新手,如果我有任何错误,请帮助我 { "data": { "weather": [{ "id": 800, "main": "Clear", "description": "clear sky", "icon": "01d" }], "id":
数据。名称字符串。我使用的方法如下。下面提到的方法返回一个错误。我是AngularJS的新手,如果我有任何错误,请帮助我
{
"data": {
"weather": [{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01d"
}],
"id": 1271714,
"name": "Gandhi Nagar",
"cod": 200
},
"status": 200,
"config": {
"method": "GET",
"transformRequest": [null],
"transformResponse": [null],
"url": "http://api.openweathermap.org/data/2.5/weather?lat=13.0414146&lon=80.2599991&appid=016040457f30e1967b4025f18e225136",
"headers": {
"Accept": "application/json, text/plain, */*"
}
},
"statusText": "OK"
}
请尝试以下内容:
var city = angular.fromJson(result.data.name);
试试这个angular.fromJson
需要有效的json字符串,而result.data.name
不是有效的json字符串。将此字符串反序列化为JSON对象后,您就可以获得您的值
result = angular.fromJson(result);
var city = result.data.name;
您可以显示您的$http
调用吗?它工作正常(假设您的JSON被正确分配)?您是否直接尝试过result.name?它适用于所有其他数据,如result.data.codit。它适用于。。!!但是你能告诉我为什么我的方法不起作用吗?据我所知,angular.fromJson()需要一个JSON输入。我假设result
就是您得到的JSON对象。您需要首先转换整个JSON对象并提取所需的对象属性,而不是首先提取属性并仅将该部分转换为字符串。如果我错了,请任何人纠正我。我不明白的是为什么它首先需要fromJson转换:简单地var city=result.data.name代码>通常只适用于我。@yclee0210:您的描述是正确的。问题中提供的数据实际上不是JSON字符串。事实上,它是一个简单的对象,直接访问属性不应该引起错误。错误可能是由于他试图分析一个简单字符串(result.data.name
)引起的。另一方面,解析一个数字就可以了(result.data.cod
)。真正的JSON字符串将把外部的{}
放在另一对“
中。
var city = angular.fromJson(result).data.name;