C# 将xml转换为json后,无法访问数据

C# 将xml转换为json后,无法访问数据,c#,xml,json,angularjs,C#,Xml,Json,Angularjs,我正在学习angularjs 当我想访问xml文件时,我无法使用xml\u strjson 此方法正在将数据xml转换为json,但无法在html文件中访问 这是我的密码: enter code here<!DOCTYPE html> <html ng-app=""> <head> <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"&

我正在学习angularjs

当我想访问xml文件时,我无法使用xml\u strjson 此方法正在将数据xml转换为json,但无法在html文件中访问 这是我的密码:

enter code here<!DOCTYPE html>
<html ng-app="">
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js">   </script>
<script type="text/javascript" src="http://demos.amitavroy.com/learningci/assets   /js/xml2json.js" charset="UTF-8"></script>
  <script>
        function customersController($scope, $http) {
        $http.get("http://localhost:13087/Data.xml")
        .success(function (response) {
            $scope.lstComapanies = x2js.xml_str2json(response);
            console.log($scope.lstComapanies);

            alert(response);
        });
    }

</script>
     <title></title>
      </head>
   <body ng-controller="customersController">
     <table>
        <tbody>
               <tr ng-repeat="CompanyModel in lstComapanies">
                <!-- $index for duplicate values -->
                  <td class="border">
                      <label>{{ CompanyModel }}</label>
                </td>

            </tr>
        </tbody>
    </table>
很简单:

<tr ng-repeat="CompanyModel in lstComapanies.CompanyModel">

查看您的JSON。它从一个具有两个属性的对象开始: 1. ____cnt=8(听起来像计数) 2.CompanyModel=对象数组

所以中继器需要一个数组,而你给了他一个对象。但是这个对象包括你的数组

JSON意味着Java脚本对象表示法,当您在JavaScript中解析JSON时,它将以一个对象或数组结束。因此,您可以直接访问您的lstcompanies(应该是lstcompanies?)中的所有内容

如果不工作,则执行钻孔操作:

  • 模块
  • 控制器来定义范围
  • 使用控制器并迭代数据

    angular.module('myApp',[])
    .controller('customersController',['$scope','$http',
    $scope.lstComapanies={};
    函数($scope,$http){
    $http.get(“http://localhost:13087/Data.xml")
    .成功(功能(响应){
    $scope.lstComapanies=JSON.parse(x2js.xml_str2json(响应));
    console.log($scope.lstComapanies);
    警报(响应);
    })
    }]);
    ...
    {{CompanyModel.}
    {{CompanyModel.BacklogSum}
    {{sum}}
    ...
    
    注意:并非所有浏览器中都存在JSON.parse(),请参见此处:


  • 但通常我会将HTTPGET放在工厂或服务类中,这些类可以注入到需要访问数据的任何控制器中。接下来,我将向您承诺,当成功通过特定的API函数(如getCompanies())返回所需数据时,您需要为应用程序创建一个主模块,然后将控制器添加到其中

    首先,将脚本更改为:

    var myApp = angular.module('myApp', []);
    
    myApp.controller('customersController', ['$scope', '$http',
     function($scope, $http){
        $http.get("http://localhost:13087/Data.xml")
            .success(function (response) {
                $scope.lstComapanies = x2js.xml_str2json(response);
                console.log($scope.lstComapanies);
    
                alert(response);
        })
    }]);
    
    然后正确设置应用程序和控制器

    <body ng-app="myApp">
        <div ng-controller="customersController">
            <table>
                .... etc
    
    
    .... 等
    
    此外,如上所述,您需要更改ng重复

    <tr ng-repeat="objects in lstComapanies.CompanyModel">
    
    
    
    尝试解析JSON.parse(您的\u转换的\u数据)。您好,很抱歉,上面一页显示空白页面,我按照给定的方式修改了脚本,但结果没有变化,但当我使用警报检查时,我可以看到data@user1983379由于您将ng repeat的名称更改为objects,您是否将绑定更改为{{objects}你好,Alex Scott我的问题由changin解决,代码为$scope.lstComapanies=obj.ArrayOfCompanyModel.CompanyModel;然后还必须添加@Alex Scott描述的角度模块。
    <body ng-app="myApp">
        <div ng-controller="customersController">
            <table>
                .... etc
    
    <tr ng-repeat="objects in lstComapanies.CompanyModel">