Seb*_*ian 216 .net serialization json exception json.net
我很高兴使用Newtonsoft JSON库.例如,我将从JObject.NET对象创建一个,在这种情况下是一个Exception实例(可能是也可能不是子类)
if (result is Exception)
var jobjectInstance = JObject.FromObject(result);
Run Code Online (Sandbox Code Playgroud)
现在我知道库可以将JSON文本(即字符串)反序列化为对象
// only works for text (string)
Exception exception = JsonConvert.DeserializeObject<Exception>(jsontext);
Run Code Online (Sandbox Code Playgroud)
但我要找的是:
// now i do already have an JObject instance
Exception exception = jobjectInstance.????
Run Code Online (Sandbox Code Playgroud)
很明显,我可以从JObject背面转到JSON文本,然后使用反序列化功能,但这似乎是我的倒退.
Tie*_* Do 434
根据这篇文章,它现在好多了:
// pick out one album
JObject jalbum = albums[0] as JObject;
// Copy to a static Album instance
Album album = jalbum.ToObject<Album>();
Run Code Online (Sandbox Code Playgroud)
文档:将JSON转换为类型
Seb*_*ian 41
从文档中我发现了这一点
JObject o = new JObject(
new JProperty("Name", "John Smith"),
new JProperty("BirthDate", new DateTime(1983, 3, 20))
);
JsonSerializer serializer = new JsonSerializer();
Person p = (Person)serializer.Deserialize(new JTokenReader(o), typeof(Person));
Console.WriteLine(p.Name);
Run Code Online (Sandbox Code Playgroud)
类定义Person应与以下内容兼容:
class Person {
public string Name { get; internal set; }
public DateTime BirthDate { get; internal set; }
}
Run Code Online (Sandbox Code Playgroud)
编辑
如果您使用的是最新版本的JSON.net 并且不需要自定义序列化,请参阅上面的TienDo答案(如果您赞成我,请查看以下内容:P),这更简洁.
| 归档时间: |
|
| 查看次数: |
152030 次 |
| 最近记录: |