XML'den JSON'a politika dağıtımı hatasını giderme

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
bilgi

EitherOptionOrFormat

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

Error Saving Revision [revision_number]
XMLToJSON[{0}]: Either Options or Format must be specified.

Örnek hata

Error Saving Revision 1
XMLToJSON[{0}]: Either Options or Format must be specified.

Örnek ekran görüntüsü

Neden

<Options> veya <Format> öğelerinden biri XML'den JSON'a dönüştürme politikasında bildirilmemişse API proxy'sinin dağıtımı başarısız olur.

<Format> kullanılmıyorsa <Options> gereklidir.

<Format> öğesini veya <Options> öğe grubunu kullanın. Hem <Format> hem de <Options> kullanılamaz. Önceden tanımlanmış biçimler arasında xml.com, yahoo, google ve badgerFish yer alır.

Teşhis

  1. Hatayı içeren API proxy'sindeki tüm XML-JSON politikalarını inceleyin. <Options> veya <Format> öğelerinden birinin bildirilmediği bir XML'den JSON'a dönüştürme politikası varsa hatanın nedeni budur.

    Örneğin, aşağıdaki politikada öğelerden hiçbiri bildirilmemiştir:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
        <DisplayName>XMLToJSON</DisplayName>
        <Properties/>
        <OutputVariable>response</OutputVariable>
        <Source>response</Source>
    </XMLToJSON>
    

Çözünürlük

XML'den JSON'a dönüştürme politikasının XML'sinde, politikada <Options> veya <Format> öğelerinden birinin tanımlandığından emin olun.

1. Örnek:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
    <DisplayName>XMLToJSON</DisplayName>
    <Properties/>
    <Format>google</Format>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</XMLToJSON>

2. Örnek:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="XMLToJSON">
    <DisplayName>XMLToJSON</DisplayName>
    <Properties/>
    <Options>
        <RecognizeNumber>true</RecognizeNumber>
        <RecognizeBoolean>true</RecognizeBoolean>
        <RecognizeNull>true</RecognizeNull>
    </Options>
    <OutputVariable>response</OutputVariable>
    <Source>response</Source>
</XMLToJSON>

UnknownFormat

Hata mesajı

API proxy'sinin Edge kullanıcı arayüzü veya Edge Management API aracılığıyla dağıtımı şu hata mesajıyla başarısız oluyor:

Error Saving Revision [revision_number]
XMLToJSON[policy_name]: Unknown Format [unknown_format].

Örnek hata

Error Saving Revision 1
XMLToJSON[WithFormat]: Unknown Format google.com.

Örnek ekran görüntüsü

Neden

XML'den JSON'a politikası içindeki <Format> öğesinde bilinmeyen bir biçim tanımlanmışsa API proxy'sinin dağıtımı başarısız olur.

Önceden tanımlanmış biçimler arasında xml.com, yahoo, google ve badgerFish yer alır.

Teşhis

  1. Hataya neden olan XML'den JSON'a politikayı ve bilinmeyen biçimi belirleyin. Bu bilgiyi hata mesajından edinebilirsiniz. Örneğin, aşağıdaki hatada politika adı WithFormat, bilinmeyen biçim ise google.com'dir:

    Error Saving Revision 1
    XMLToJSON[WithFormat]: Unknown Format google.com.
    
  2. Başarısız olan XML'den JSON'a politikada belirtilen bilinmeyen biçimin, hata mesajında tanımlanan değerle (yukarıdaki 1. adım) eşleştiğini doğrulayın. Örneğin, aşağıdaki politikada biçim google.com olarak belirtilmiştir. Bu, hata mesajındaki biçimle eşleşir:

    <XMLToJSON async="false" continueOnError="false" enabled="true" name="WithFormat">
      <DisplayName>WithFormat</DisplayName>
      <Properties/>
      <Format>google.com</Format>
      <OutputVariable>response</OutputVariable>
      <Source>response</Source>
    </XMLToJSON>
    
  3. Belirtilen biçim, önceden tanımlanmış biçimler xml.com, yahoo, google veya badgerFish arasında değilse hatanın nedeni budur.

    Yukarıda gösterilen XML'den JSON'a dönüştürme politikası örneğinde, biçim google.com şeklindedir ve bu biçim geçersizdir. Bu nedenle, API proxy'sinin dağıtımı şu hatayla başarısız olur:

    XMLToJSON[WithFormat]: Unknown Format google.com.
    

Çözünürlük

XML'den JSON'a politikası <Format> öğesinde belirtilen biçimin geçerli olduğundan emin olun. Örneğin:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<XMLToJSON async="false" continueOnError="false" enabled="true" name="WithFormat">
  <DisplayName>WithFormat</DisplayName>
  <Properties/>
  <Format>google</Format>
  <OutputVariable>response</OutputVariable>
  <Source>response</Source>
</XMLToJSON>