我有几个不同的格式,但我无法弄清楚如何处理它们因为当我尝试通过键json.net崩溃找到.我希望它只会返回null.
foreach (var item in jsonObj)
{
var msg = item.Value["Msg"];
if (msg != null)
{
txtErrors.Text += msg + Environment.NewLine;
}
}
Run Code Online (Sandbox Code Playgroud)
//格式化一个
{[UserNotFound, {
"SeverityType": 3,
"ValidationType": 2,
"Msg": "Email Not Found"
}]}
Run Code Online (Sandbox Code Playgroud)
我的代码有效.
//格式2(因为我没有在服务器端捕获异常)
{
"Message": "An error has occurred.",
"ExceptionMessage": "Object reference not set to an instance of an object.",
"ExceptionType": "System.NullReferenceException",
"StackTrace": " "
}
Run Code Online (Sandbox Code Playgroud)
我当然可以修复此问题并捕获异常.但是,如果我再次忘记,我也不会让它在客户端崩溃.所以我很乐意打印出"消息",但我不知道如何做到这一点,所以它不会崩溃var msg = item.Value["Msg"];
我尝试做var时得到的错误 msg = item.Value["Msg"];
System.InvalidOperationException was unhandled
Message=Cannot access child value on Newtonsoft.Json.Linq.JValue.
StackTrace:
at …
Run Code Online (Sandbox Code Playgroud) 说想检查 json 对象中是否存在路径“L1.L2.L3”。有一种方法可以逐步检查级别(如何检查 json 对象是否具有某些属性),但我希望省却麻烦,而是检查路径。