我目前有一个 REST 应用程序,它返回一个类似于以下内容的 JSON 字符串:
[{error: "Account with that email exists"}]
对于什么时候抛出错误。我不想将它反序列化为自定义的“错误”对象,因为它看起来有点浪费和毫无意义。有没有一种简单的方法可以从 JSON 字符串中提取特定字段,而无需创建自定义类来反映它。
谢谢
如果您不想创建自定义类,您有几个选择,您可以反序列化为动态:
dynamic tmp = JsonConvert.DeserializeObject(yourString);
string error = (string)tmp.error;
Run Code Online (Sandbox Code Playgroud)
或反序列化为字典:
var dic = JsonConvert.DeserializeObject<Dictionary<string, string>>();
string error = dic["error"];
Run Code Online (Sandbox Code Playgroud)
不需要第三方库。使用原生JavaScriptSerializer。
string input = "[{error: \"Account with that email exists\"}]";
var jss = new JavaScriptSerializer();
var array = jss.Deserialize<object[]>(input);
var dict = array[0] as Dictionary<string, object>;
Console.WriteLine(dict["error"]);
// More short with dynamic
dynamic d = jss.DeserializeObject(input);
Console.WriteLine(d[0]["error"]);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15217 次 |
| 最近记录: |