2017-03-07 52 views
0

我在我的應用程序中使用angularjs和spring mvc。 angularjs使用rest調用彈簧控制器。控制器調用返回XML的外部URL。angularjs休息調用json格式返回xml

現在,我想將這個XML以json格式發送到angularjs。我可以將xml轉換爲java對象(使用jaxb)並使用jackson-databind jar將java轉換爲json。但是,從外部URL返回的xml結構是動態的,並且可以更改任何不受我控制的時間。在這種情況下,如果xml結構發生變化,我將不得不修改我的java對象。這很乏味。

相反,如果我可以直接將xml響應以json的形式發送給angularjs,它將使我的任務更加輕鬆。

有什麼辦法可以達到這個目的嗎?

或者,我可以直接在angularjs中調用外部URL嗎?返回的xml會自動轉換爲json嗎?或者我應該使用任何組件或JS庫將其轉換成json?

回答

1

您可以直接調用外部URL,並且必須使用第三方庫進行xml轉換,因爲angular不會使用手動http提供轉換本身。我建議x2js,因爲它很簡單,很容易理解,例如如何使用它如下,如果你想了解更多的細節,請通過文檔。

控制器

module.controller('exampleCtrl', function($scope,exampleSvc){ 

    function loadExternalXml(){ 
     var x2js = new X2JS(); 
     exampleSvc.getExternalXml().success(function(data){ 
       // part to convert xml to json 
       var json = x2js.xml_str2json(data); 
     }); 
    } 
    }); 

服務

module.factory('exampleSvc',function($http){ 
    var factory = []; 

    factory.getExternalXml = function(){ 
     return $http.get("http://cdn.rawgit.com/motyar/bcf1d2b36e8777fd77d6/raw/bfa8bc0d2d7990fdb910927815a40b572c0c1078/out.xml"); 
    } 

    return factory; 
}); 
+0

感謝您的數字。 – Maz

+0

不客氣;-) – digit