Würde es wie Kaliber machen. Du kannst (falls es nur 2 Formate sind) nach JSON parsen. Gibt das einen Fehler aus, kannst du zB in der Exception eine Variable setzen, schauen, ob diese True ist und anschließend deine Ausgabe anders auslesen.
Wenn du mehrere Ausgabeformate hast, solltest du einen Content-Type Header zurückgeben. Das macht den Code um ein vielfaches sauberer, es ist nicht so hässlich wie oben beschrieben und du wirst dir auch noch nach mehreren Monaten dafür danken, weil der Code sich nämlich von selbst erklärt und du auch direkt weißt, was alles ausgegeben werden kann.
Dazu kannst du auch eigene Header erfinden und Wiedererkennungsmerkmale übergeben.
Würde dir ja ein Beispiel geben, mit C# habe ich nur leider nichts am Hut. =D