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;