例如,这是 JSON 数组:
[
{
"name":"Jennifer Bellingham",
"shortname":"Jenni"
},
{
"name":"Jonathan G. Ferrar II",
"shortname":"Jonathan_Ferrar"
}
]
这是我希望它被转换的格式(JavaScript 对象数组):
[
{
name : "Jennifer Bellingham",
shortname : "Jenni"
},
{
name : "Jonathan G. Ferrar II",
shortname : "Jonathan_Ferrar"
}
]
我使用过,JSON.parse()
但出现此错误:
语法错误:JSON 中的意外标记 u 位于位置 0
这是我的代码:
我有一个 angularjs 应用程序:
var app = angular.module('app', ['ngRoute','appControllers',
'ui.carousel']);
这是我的控制器:(我正在尝试使用 angularjs ui carousel)
app.controller('uiCarousel', function($scope,$http) {
$http.get('data/test.json').then(function(response){
$scope.mySlides = response.data;
console.log("My Slides :", $scope.mySlides ); //I'm getting the result here
});
//But here I can't do the parsing right,
this.slides = JSON.parse($scope.mySlides);
});
上面代码中的 this.slides 需要这种格式:
[
{
name : "Jennifer Bellingham",
shortname : "Jenni"
},
{
name : "Jonathan G. Ferrar II",
shortname : "Jonathan_Ferrar"
}
]
嗯... JSON 和 javascript 对象有点相同(后者可以包含更多的东西,如函数、getter、setter 等...)
我猜你对对象字面量的写作风格感到困惑。{"key": "value"}
并且{key: "value"}
是一样的。
所以...response.data
实际上是一个javascript对象(相当于JSON数据)
基本上没有必要解析任何东西......
let a = [
{
"name": "Jennifer Bellingham",
"shortname": "Jenni"
},
{
"name": "Jonathan G. Ferrar II",
"shortname": "Jonathan_Ferrar"
}
];
let b = [
{
name: "Jennifer Bellingham",
shortname: "Jenni"
},
{
name : "Jonathan G. Ferrar II",
shortname : "Jonathan_Ferrar"
}
];
console.log(angular.equals(a,b));
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
这就是您收到错误的原因,因为您正在尝试解析已解析的 JSON 字符串。
例如看这个链接:https : //en.wikipedia.org/api/rest_v1/page/summary/JavaScript api的响应主体是JSON所以获取它就像获取一个.json文件
然后response.data
将是一个 javascript 对象...因此我可以直接访问response.data.extract
angular.module("myApp", [])
.controller("myCtrl", function($scope, $http) {
$http
.get("https://en.wikipedia.org/api/rest_v1/page/summary/JavaScript")
.then(function(response) {
$scope.extract = response.data.extract;
})
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">{{extract || "loading"}}</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句