ApiController破坏JSON,抛出角度ng中继器错误

ApiController破坏JSON,抛出角度ng中继器错误,json,angularjs,asp.net-apicontroller,Json,Angularjs,Asp.net Apicontroller,我的ApiController方法以以下格式返回JSON: "[{\"Category\":{\"CategoryType\":{\"Categories\":[{\"Client\":{\"Categories\":[{\"CategoryType\":{\"Categories\":[{\"Controls\":[],\"Risks\":[{\"Controls\":[],\"PCRMaps\":[],\"Id\":3,\"Title\":\"Risk with ID\",\"Descrip

我的ApiController方法以以下格式返回JSON:

"[{\"Category\":{\"CategoryType\":{\"Categories\":[{\"Client\":{\"Categories\":[{\"CategoryType\":{\"Categories\":[{\"Controls\":[],\"Risks\":[{\"Controls\":[],\"PCRMaps\":[],\"Id\":3,\"Title\":\"Risk with ID\",\"Description\":\"Test\",\"CategoryId\":80, etc etc
我有AngularJS代码来呈现这个JSON对象的下拉列表,如下所示:

  <select ng-model="newRisk.ClientId" id="ddlClient" name="ddlClient">
     <option></option>
     <option ng-repeat="client in clients" value="{{client.Id}}">{{client.Name}}</option>
   </select>
这是最后一行让我不舒服的-重复值“[”

以下是控制器代码。非常简单:

       [HttpGet]
       public string GetAll()
       {

           return JsonConvert.SerializeObject(clientRepo.GetAll(),
                           Formatting.Indented,
                           new JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Ignore });

       }
在返回JSON对象之前,是否需要执行额外的格式化步骤

{
"entries": [{
    "id": 1,
    "name": "Partha",
    "niceName": "Sonu"
}, {
    "id": 2,
    "name": "David",
    "niceName": "Dav"
}]}
这种格式支持在ng repeat中显示数据

var data={"lists":angular.fromJson(response)};
                $scope.items =data.lists;

看起来,
clients
不是一个对象,而是一个字符串(json)。也更喜欢对select.Hm使用而不是ng repeat。它应该是一个对象…riskFactory.getClients().success(函数(数据){$scope.clients=data;})。error(函数(数据){$scope.error=“加载客户端时发生错误!”+data.ExceptionMessage;});我将研究使用ng选项,看看这是否有帮助尝试
console.log(data)
。通过执行
$scope.clients=data
不能确保数据是对象。…)
重复值:[“
似乎它试图重复JSON中的每个字符。我上面粘贴的JSON片段来自一个控制台.log(数据)调用。我同意似乎每个字符都在重复,我只是不知道如何解决这个问题。
var data={"lists":angular.fromJson(response)};
                $scope.items =data.lists;