Теперь я использую JsonSerializer.Deserialize
из System.Text.Json
для десериализации из строки в модель. Однако есть две ситуации, когда я получаю JSON от стороннего API удаленного сервера. Когда все работает хорошо, он вернет JSON, включая нужное мне сообщение чата:
{
"msg": "hello everyone!",
"msgtype": "text"
}
Если с кодом что-то не так, он вернет JSON, включая ошибку:
{
"errorcode": "123",
"errormsg": "Not such table \"aaa\""
}
Я хочу знать, какой тип JSON возвращается каждый раз, сообщение или ошибка выше.
Я думаю использовать String.Contain("errorcode")
, чтобы узнать, возвращает ли оно сообщение JSON или ошибка JSON в начале.
Тем не менее, сообщение чата непредсказуемо, что оно даже может содержать текст «errorcode» в сообщении JSON.
Вот коды:
public class msgModel
{
public string msg{ get; set; }
public string msgtype{ get; set; }
}
public class errorModel
{
public string errorcode{ get; set; }
public string errormsg{ get; set; }
}
Я всегда десериализую JSON следующим образом:
string JSON="";//some JSON
JsonSerializer.Deserialize(JSON, typeof(msgModel));
Я могу только добавить try{}catch{}
вокруг него, чтобы узнать, возвращает ли JSON ошибку , Я не думаю, что это правильный способ сделать это. Как я могу решить это?