XML API请求为数组或子类返回“ d3p1”

问题描述 投票:0回答:1

使用邮递员,C#,. NET Framework 4.7

我从Postman发出GET请求,并将content-accept设置为“ application / xml”,我的.NET Framework Web API将以XML响应(非常棒!)。我不需要手动序列化任何东西,因为当我返回Request.CreateResponse(HttpStatusCode.OK, myResponse)时,.NET Framework序列化了我的响应对象。

但是,似乎包含了一些我不熟悉的额外内容,我想知道是否可以通过Global.asax设置或类似内容将其删除?

  • xmlns =“ http://schemas.datacontract.org/2004/07/dto.MyModels”是我要删除的东西!
  • “ d3p1”不是我创建XML时遇到的东西。我可以以某种方式删除它吗?
  • <error i:nil="true" />会在为空时弹出。当它为null时是否可能只是出现或不出现?
  • 因此,XML响应如下所示:

<SimpleResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/dto.MyModels">
    <error i:nil="true" />
    <result>
        <bookList xmlns:d3p1="http://schemas.datacontract.org/2004/07/dto.MyModels.Shared">
            <d3p1:Book>
                <d3p1:bookname>Book 1 Name</d3p1:bookname>
                <d3p1:serial>ZMeTaQ1kejh0mJYGHE4+1a4Y2juU6tMDd5zYDqN4tqI=</d3p1:serial>
                <d3p1:id>4</d3p1:id>

            </d3p1:Book>
            <d3p1:Book>
                <d3p1:bookname>Hello World</d3p1:bookname>
                <d3p1:serial>9lM16kho3bgsrG+wRh4ejtZjwrYJwp6FbRqnnZ4CJPA=</d3p1:serial>
                <d3p1:id>5</d3p1:id>
            </d3p1:Book>
            <d3p1:Book>
                <d3p1:bookname>Ding</d3p1:bookname>
                <d3p1:serial>XCqqKB+Wi3i4z6nN1Ry8IHtar6ogojjiqxMfvfgC0qc=</d3p1:serial>
                <d3p1:id>6</d3p1:id>
            </d3p1:Book>
        </bookList>
        <author xmlns:d3p1="http://schemas.datacontract.org/2004/07/dto.Models.Android.Shared">
            <d3p1:pictureId>0</d3p1:pictureId>
            <d3p1:websiteurl i:nil="true" />
            <d3p1:email i:nil="true" />
            <d3p1:name>Jo Blogs</d3p1:size>
            <d3p1:age>0</d3p1:size>
        </author>
    </result>
</SimpleResponse>

我的班级看起来像这样:

public string error { get; set;}
public class SimpleResponse 
{
 public List<Book> bookList { get; set; }
 public Author author { get; set; }
}

public class Book
{
    public string bookname { get; set; }
    public string serial { get; set; }
    public int id { get; set; }
}

public class Author
{
    public string pictureId{ get; set; }
    public string websiteurl { get; set; }
    public string email { get; set; }
    public string name { get; set; }
    public int age { get; set; }
}

使用Postman,C#、. NET Framework 4.7,我从Postman发出了GET请求,并将content-accept设置为“ application / xml”,并且我的.NET Framework Web API将以XML响应(非常棒!)。我还没有...

c# .net xml xml-serialization
1个回答
1
投票

xmlns =“ http://schemas.datacontract.org/2004/07/dto.MyModels”是我要删除的东西!

© www.soinside.com 2019 - 2024. All rights reserved.