2016-07-18 9 views
0

Ich möchte eine Liste von Ländern als Teil meiner XML-API zurückgeben, die auf dem Loopback.js-Framework basiert. Ich baue eine Reihe von Land-Objekten und dannLoopback XML-Antwort-Array wird als einzelne Einträge gerendert

 var regions=[]; 
     for (var index in data.regions) 
     { 
      var country=data.regions[index]; 
      regions.push({country:{ 
        code:country.code, 
        name:country.name 
       } 
      }); 
     } 
     result.restricted_countries=regions; 

zu Antwortobjekt zuweisen, wenn ich das Ergebnis Dump sieht das Array feines

[ { country: { code: 'AE', name: 'United Arab Emirates' } }, 
    { country: { code: 'AF', name: 'Afghanistan' } } ] 

jedoch, wenn ich das Ergebnis als XML übertragen, jedes Land gewickelt ist, in seiner eigenen restricted_country Knoten

<restricted_countries> 
    <country> 
     <code>AE</code> 
     <name>United Arab Emirates</name> 
    </country> 
</restricted_countries> 
<restricted_countries> 
    <country> 
     <code>AF</code> 
     <name>Afghanistan</name> 
    </country> 
</restricted_countries> 

offensichtlich erwartete ich es

sein

Wenn ich den Antworttyp zu JSON ändern, funktioniert es wie erwartet.

Ich benutze Loopbacks Standard-XML-Renderer, nur Einstellung in der Konfig. Ich bin nicht sicher, welche Bibliothek es intern verwendet und ob es irgendwie möglich ist, es zu konfigurieren.

Antwort

1

Got wie dies

in Regionen Reihe von Wrapper country Schlüsseln befreiten
regions.push({ 
    code:country.code, 
    name:country.name 
}); 

und fügte hinzu, es als Basis für das Ergebnis

result.restricted_countries={country:regions}; 

dies ein nicht zu logisch JS Objekt macht, sondern macht eine erwartete XML. nicht sicher, ob ich gerade den Fehler behoben oder einen anderen Fehler eingeführt habe.