1

を返すときにルートノードの出力を制御したいIEnumerable<T>。現在、<ArrayOf_>ルートとしてノードを取得しています。

<ArrayOfMyClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <MyClass>
            <Number>1</Number>
    </MyClass>
    <MyClass>
            <Number>2</Number>
    </MyClass>
</ArrayOfMyClass>

これを別のものに変更できるようにしたい(さらに言えば、名前空間なしで):

<NewRoot>
    <MyClass>
            <Number>1</Number>
    </MyClass>
    <MyClass>
            <Number>2</Number>
    </MyClass>
</NewRoot>

グループクラスを作成したくありません。これはXMLで機能しますが、JSON出力にグループクラスコレクションプロパティが必要ないためです。

{
    "ListOfMyClass": [
        {
            "Number": 1
        },
        {
            "Number": 2
        }
    ]
}

代わりに、デフォルトの状態を維持したいと思います。

[
    {
        "Number": 1
    },
    {
        "Number": 2
    }
]

答えられたように見えるいくつかの同様の質問があることを私は理解しますが、それらすべてが私を行き止まりに導きます。結果を自分でハックすることもできますが(うん)、提供されているものを使用してこれを行うためのベストプラクティスの方法があることを望んでいます。注釈、フォーマッターなど。

JSON出力をデフォルトのままにして、誰かがこれで成功したことがありますか?

4

1 に答える 1

0

これを試しましたか?

public MyController : ApiController
{
    public NewRoot Get()
    {
        // return data
    }
}

public NewRoot: IEnumerable<MyClass>
{
}
于 2012-10-24T19:38:12.787 に答える