小编Ric*_*lly的帖子

反序列化JSON的更好方法是什么?

我发布的API可能会返回以下2种格式的JSON字符串中的一种:

{
"MessageType": 6,
"Message": "Unable to SAVE new record. Invalid posted data."
}
Run Code Online (Sandbox Code Playgroud)

要么

{
"Model": {
    "Id": "1-6Q0RZ9",
    ...

         },   
"ResponseResult": {
    "MessageType": 10,
    "Message": "Successfully saved, Record Id = 1-6Q0RZ9"
                  }
}
Run Code Online (Sandbox Code Playgroud)

我需要从MessageType中检索结果,并尝试了我能想到的每个if条件来读取结果,因为语法或检索key:value对于每个JSON字符串是不同的,并且没有其他标志可以触发一个或者其他.所以我使用的代码是:

string result = eml.PostData("API/Save", dataJSON.ToString());
var returnresult = new JavaScriptSerializer().Deserialize<dynamic>(result);
try {
  var responseresults = returnresult["ResponseResult"];
  rr = responseresults["MessageType"];
  rrtxt = responseresults["Message"];
} catch (Exception ex) {
  rr = returnresult["MessageType"];
  rrtxt = returnresult["Message"];
}
Run Code Online (Sandbox Code Playgroud)

哪个效果很好.如果有一个有效的Db帖子它会返回第二个JSON,它会被TRY语句正确解析,如果没有,它会抛出"找不到键"错误并解析CATCH语句中返回的字符串(第一个JSON示例).显然这是可怕的代码,但我想不出另一种方法来做到这一点,我想知道是否有人有建议?(请?)

Thanx提前.

c# asp.net json

6
推荐指数
1
解决办法
176
查看次数

get:set的目的是什么?

在C#代码的许多样品包含getset代码块.他们的目的是什么?我将这些块复制在示例代码中,但不知道它用于什么.有人可以向我解释一下吗?

c# properties

0
推荐指数
2
解决办法
4471
查看次数

标签 统计

c# ×2

asp.net ×1

json ×1

properties ×1