在 AngularJS 中解析没有特定元素名称的 JSON

Parse JSON without specific element name in AngularJS

本文关键字:元素 JSON AngularJS      更新时间:2023-09-26

我想从下面提到的URL解析国家和州的JSON响应。

https://gist.githubusercontent.com/mayurah/5f4a6b18b1aa8c26910f/raw/countriesToCities.json

{
"China":  [
"Guangzhou",
"Fuzhou",
"Beijing",
"Baotou",
"Hohhot",
"Guiyang",
"Yinchuan",
"Nanjing",
"Changzhou",
"Chuzhou",
"Hefei",
"Jinan",
"Qingdao",
"Harbin",
"Zhaodong",
"Taiyuan",
"Xi'an",
.
.
.
 }
 ]

我希望结果是,

  • 广州, 中国
  • 太原, 中国

我正在使用AngularJS,以下是我的控制器.js文件的一段代码。

var
apiUrl = {
    countryStateList: 'https://gist.githubusercontent.com/mayurah/5f4a6b18b1aa8c26910f/raw/countriesToCities.json'
};
countryData.controller('countryDataCtrl', ['$scope', '$http', function($scope, $http) {
$http.get(apiUrl.countryStateList).success(function(data) {
    // console.log(data);
    $scope.countryStateList = data;
});
}]);

而且,在我的HTML文件中,代码是这样的,

<ul ng-repeat="country in countryStateList">
<li>{{ STATE_NAME, COUNTRY_NAME }}</li>
</ul>
  • STATE_NAME和COUNTRY_NAME仅用于显示信息。两者都必须替换为 Angular 代码。

问题是JSON元素名称本身就是国家/地区名称。有人可以告诉我如何在AngularJS/Javascript中解析相同的内容吗?

您可以从解析整个 JSON 开始:

var jsonObject = JSON.parse(RAW_JSON_STING);
var newJsonObject = [];
// Loop through it
for (var interator in jsonObject)
{
    for (var it = 0; it < iterator.length; it++)
    {
        newJsonObject.push(iterator[it] + ", " + iterator);
    }
}

不能保证上面的代码会按预期工作。

Ng-repeat在您的情况下没有用。这将可以通过指令。

<datalist id="stateCountry">
    <custom-datalist-option data-array="countryStateList"></custom-datalist-option>
</datalist>

链接指令函数并使用它创建一个选项。

这是更新小提琴

希望这对您有所帮助。