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