在 AngularJS 中解析没有特定元素名称的 JSON
Parse JSON without specific element name in AngularJS
我想从下面提到的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>
链接指令函数并使用它创建一个选项。
这是更新小提琴
希望这对您有所帮助。
相关文章:
- 访问JSON对象内部的数组元素
- Jquery移除或更改JSON根元素
- 元素名称上带有短划线 (-) 字符的 Json 对象
- 如何在html angular中显示嵌套的json元素
- 如何访问JSON元素
- 使用Underscore.js修改json数组中所选元素的更有效方法
- 从json数组中查找满足条件的特定元素的值
- 在JSON文件中查找一个元素,并将其显示为HTML
- 如何在php中按元素按字母顺序排列json文件
- 在JSON数组中进行迭代,并为其元素设置样式
- 从JSON.parse获取元素
- 使用JavaScript在Json中提取时,将数组的元素转换为String
- 如何使用javascript获取json元素
- 隐藏HTML元素中的JSON编码和解码
- 使用JSON和JavaScript添加额外的html列表元素
- 通过 id json, jquery 选择元素
- 如何使克隆的 DOM 元素 JSON 可序列化
- 循环元素json数组
- 获取数组中的元素(json格式)
- 添加元素 JSON