如何解决如何在 Xamarin 中解析来自 API 的 JSON 响应
我对 Xamarin 还很陌生,正在做我的第一个项目。我有一个问题,我需要登录用户并从响应中检索详细信息。这是我的 JSON 请求:
JSON 请求:
'{
"key": "value","key": "value","JsonReq": {
"JHeader": {
"key": "value","key": "value"
},"JMetaData": {},"JData": {
"key": "value","key": "value"
}
},"key": "value"}'
请求 JSON 用单引号括起来。
我在 Xamarin 中编写了一个模型类(使用在线 JSON 到 C-sharp 工具),我可以成功地向 API 发送 POST 请求并获得正确的响应。 JSON 响应如下所示:
JSON 响应:
{
\"JHeader\": {
\"key\": IntegerValue,\"key\": \"value\"
},\r \"JMetaData\": {
\"headings\": [
[\"list1\",\"listItem\",\"ListItem\"],[\"list2\",\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\"list3\",\t\t\t\t\t \"listItem\",\t\t\t \"ListItem\"]
]
},\r \"JData\": [
\r [\"listItem\",\"ListItem\"]
]}
响应 JSON 没有用单引号括起来。 但是有这些 \r \t 和 \
现在我想解析这个响应并从中提取值。但是由于请求和响应之间存在一些差异,我无法对两者使用相同的模型类。例如,响应中没有“JSonReq”,但请求中有一个。 “JMetaData”是响应中的 list 类型,但在请求中具有键值对。
任何想法如何解析此响应?
解决方法
为你的回复生成一个模型,就像这样
public class JHeader {
public string key { get; set; }
}
public class JMetaData {
public List<List<string>> Headings { get; set; }
}
public class Root {
public JHeader JHeader { get; set; }
public JMetaData JMetaData { get; set; }
public List<List<string>> JData { get; set; }
}
然后使用 Newtonsoft
解析它var data = JsonConvert.DeserializeObject<Root>(json);
,
我想我明白了。我在想也许我无法更改类名,因为它们被用来生成 json。只是认为情况并非如此,我只需要保持与请求和响应中的变量名相同,而不是类名。傻我。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。