gpt4 book ai didi

asp.net-mvc-4 - 使用 ReadAsAsync() 反序列化复杂的 Json 对象

转载 作者:行者123 更新时间:2023-12-03 03:38:11 24 4
gpt4 key购买 nike

我想在 .net 4.0 的 mvc 项目中使用 ReadAsAsync()。结果为空。

如果我在地址栏输入 uri,chrome 中的结果为(标签名称已更改):

<ns2:MyListResponse xmlns:ns2="blablabla">
<customerSessionId>xxcustomerSessionIdxx</customerSessionId>
<numberOfRecordsRequested>0</numberOfRecordsRequested>
<moreResultsAvailable>false</moreResultsAvailable>
<MyList size="1" activePropertyCount="1">
<MySummary order="0">
<id>1234</id>
<name>...</name>
.
.
</MySummary>
</MyList>
</ns2:MyListResponse>

如果我在代码中使用该语句:

using (var client = new HttpClient())
{
var response = client.GetAsync(apiUri).Result;
var message = response.Content.ReadAsStringAsync().Result;

var result1 = JsonConvert.DeserializeObject<MyListResponse>(message);
var result2 = response.Content.ReadAsAsync<MyListResponse>().Result;
}

消息采用字符串格式 "{\"MyListResponse\":{\"customerSessionId\"...}" ,对应于 json 对象:

{"MyListResponse":
{"customerSessionId":"xxcustomerSessionIdxx",
"numberOfRecordsRequested":0,
"moreResultsAvailable":false,
"MyList":
{"@size":"1",
"@activePropertyCount":"1",
"MySummary":
{"@order":"0",
"id":1234,
"name":"...",
.
.
}
}
}
}

result1 和 result2 的属性为 null 或默认值。类定义如下。我想将内容作为对象来读取,但我不能。您有什么建议来解决这个问题?我究竟做错了什么?提前致谢。

public class MySummary
{
public int @Order { get; set; }
public string Id { get; set; }
public string Name { get; set; }
.
.
}

public class MyList
{
public int @Size { get; set; }
public int @ActivePropertyCount { get; set; }
public MySummary MySummary{ get; set; }
}

public class MyListResponse
{
public string CustomerSessionId { get; set; }
public int NumberOfRecordsRequested { get; set; }
public bool MoreResultsAvailable { get; set; }
public MyList MyList { get; set; }
}

最佳答案

我定义了一个新类:

public class ResponseWrapper
{
public MyListResponse MyListResponse { get; set; }
}

然后我使用了这个包装器,

 var result1 = JsonConvert.DeserializeObject<ResponseWrapper>(message);
var result2 = response.Content.ReadAsAsync<ResponseWrapper>().Result;

然后就成功了。我只需要 MySummary 对象,但我应该编写更多的类来使其工作。

关于asp.net-mvc-4 - 使用 ReadAsAsync<T>() 反序列化复杂的 Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23576726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com