.net 格式化Web API结果
我在Web APi中收到一个XML结果,如下所示:.net 格式化Web API结果,.net,xml,.net,Xml,我在Web APi中收到一个XML结果,如下所示: <ArrayOfResult ....> <Result> <Id> <FirstName></FirstName> <LastName></LastName> <MiddleName></MiddleName> <Address1></Address1> <Address2></A
<ArrayOfResult ....>
<Result>
<Id>
<FirstName></FirstName>
<LastName></LastName>
<MiddleName></MiddleName>
<Address1></Address1>
<Address2></Address2>
</Result>
</ArrayOfResult>
是否可以将其格式化为以下格式:
<Result>
<WholeName>
<LastName></LastName>
<FirstName></FirstName>
<MiddleName></MiddleName>
</WholeName>
<Addresses>
<Address1></Address1>
<Address2></Address2>
</Address>
</Result>
您现在有了一个结果类:
public class Result
{
public string Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
public string Address1 { get; set; }
public string Address2 { get; set; }
}
然后从API方法返回一个数组,使其按如下所示进行序列化:
var results = new Result[]
{
new Result { Id = "123", ... },
};
现在您需要更改此响应的结构。为此,您需要定义一个新类型,以将数据准确地保存在所需的结构中:
public class Result
{
public WholeName WholeName { get; set; }
public List<Address> WholeName { get; set; }
}
public class WholeName
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string MiddleName { get; set; }
}
public class Address
{
public string Address { get; set; }
}
公共类结果
{
公共WholeName WholeName{get;set;}
公共列表全名{get;set;}
}
公共类全名
{
公共字符串名{get;set;}
公共字符串LastName{get;set;}
公共字符串MiddleName{get;set;}
}
公共课堂演讲
{
公共字符串地址{get;set;}
}
并将结果映射到该类型的实例:
var newResult = new Result
{
WholeName = new WholeName
{
FirstName = oldResult.FirstName,
...
},
Addresses = new List<Address>
{
new Address
{
Address = oldResult.Address1,
...
}
}
}
var newResult=新结果
{
WholeName=新的WholeName
{
FirstName=oldResult.FirstName,
...
},
地址=新列表
{
新地址
{
地址=oldResult.Address1,
...
}
}
}
No,因为XML元素名称不能以数字开头。请阅读并详细说明你到底想做什么(你所说的“格式”到底是什么意思?)。不要关注数字,它只是一个样本。在WCF中,我返回了以下结果:使用XMLElement。。在WebAPI中手动映射它(设置元素和属性),是否也可以这样做?@stuartd您肯定是指“XSLT”?(别叫我雪莉)@Jeric那么你有一个XML输入,想要一个XML输出?或者您确实接收到一个对象作为输入,并且需要输出另一个对象,而XML是不必要的中间步骤?再次说明你到底想做什么,你做了什么。谢谢你纠正我。谢谢,也许就是这样。这就是我的想法。只是不知道我是否可以使用或忘记a/an注释来代替创建这些类。如果注释是一个错误的术语,请纠正我。您可以使用注释更改属性的序列化,但不能(非常简单地)在输出中引入全新的结构(例如所需的嵌套)。