2016-07-18 3 views
0

loopback.jsフレームワーク上に構築されたXML APIの一部として国のリストを返したい。私は結果をダンプするとき、私はXMLとして結果をレンダリングするとき、私は、国オブジェクトの配列を構築し、応答オブジェクトに割り当てていループバックXMLレスポンス配列が個別のエントリとしてレンダリングされる

 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; 

配列は、それぞれの国

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

が正常に見えますそれ自身のrestricted_countryノードに包まれ

<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> 

は明らかに私がすることを期待

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

応答タイプをJSONに変更すると、期待どおりに動作します。

ループバックのデフォルトのXMLレンダラーを使用しています。コンフィグレーションに"rest": {"xml": true}を設定するだけです。私は内部的にどのライブラリを使用しているのかわかりません。

答えて

1

この

regions.push({ 
    code:country.code, 
    name:country.name 
}); 

様領域配列にラッパーcountryキーを取り除くと、これはあまりにも論理JSの対象となるが、期待されるXMLをレンダリング結果

result.restricted_countries={country:regions}; 

ためのベースとしてそれを加えてしまいました。私がちょうどバグを修正したか、まだ別のものを導入したのかどうかは分かりません。

関連する問題