【发布时间】:2020-12-31 12:45:21
【问题描述】:
我对 Xamarin 还很陌生,正在做我的第一个项目。我有一个问题,我需要登录用户并从响应中检索详细信息。这就是我的 JSON 请求 的样子:
JSON 请求:
'{
"key": "value",
"key": "value",
"JsonReq": {
"JHeader": {
"key": "value",
"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\", \"listItem\", \"ListItem\"],
\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\", \"ListItem\"]
]}
响应 JSON 不是用单引号括起来的。 但是有这些 \r \t 和 \
现在我想解析这个响应并从中提取值。但由于请求和响应之间存在一些差异,我无法对两者使用相同的模型类。例如,响应中没有“JSonReq”,但请求中存在“JSonReq”。 "JMetaData" 是一个 list 类型的响应,但在请求中有键值对。
任何想法如何解析此响应?
【问题讨论】:
-
那不是有效的 json。不要发布“类似这样的东西”,请发布您收到的实际回复或代表性样本。您是否尝试过通过与请求相同的 json2csharp 工具运行响应?
-
@Jason 是的,这不是有效的 JSON。但我可以通过删除 \r \t 和 \.然后它变成一个有效的 JSON。是的,我在修复它之后运行了来自 json2csharp 的响应,它生成了 c-sharp 代码。但接下来会发生什么。现在我的项目将有两个模型类;一个用于请求,一个用于响应,它们都将具有 JHeader 和 JMetada 类。如何在一个命名空间中有两个同名的类?
标签: json xamarin httprequest httpresponse