Sam*_*lly 5 c# asp.net-mvc json.net
我正在使用 Newton 的 Json.Net 将 Json 反序列化为 .NET 对象。我试图了解是否可以从一般对象转换为特定对象。
IE:
object myObject JsonConvert.DeserializeObject<object>(myJsonValue);
myOrder = (Order)myObject;
Run Code Online (Sandbox Code Playgroud)
该代码更多地是关于描述我的问题。我知道可以这样做:
object myObject JsonConvert.DeserializeObject<order>(myJsonValue);
Run Code Online (Sandbox Code Playgroud)
但由于这是一个辅助函数,所以它不能是“订单”,而是更一般的东西。
谢谢。
编辑:
得到错误:
Getting Unable to cast object of type 'Newtonsoft.Json.Linq.JObject' to type 'Order'
Run Code Online (Sandbox Code Playgroud)
我将在这里做一个假设,因为这个问题不是 100% 清楚,但我想我有一个好主意:
但由于这是一个辅助函数,所以它不能是“订单”,而是更一般的东西。
您需要向辅助函数添加类型参数:
public class SomeHelper
{
public T Deserialize<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
}
Run Code Online (Sandbox Code Playgroud)
并使用它:
SomeHelper helper = new SomeHelper();
string json = "...";
Order order = helper.Deserialize<Order>(json);
Run Code Online (Sandbox Code Playgroud)
与反序列化为 相比,使用反序列化为object的东西更容易JToken。
JToken myObject = JsonConvert.DeserializeObject<JToken>(myJsonValue);
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用该JToken.ToObject<T>()方法执行最终转换:
Order order = myObject.ToObject<Order>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4418 次 |
| 最近记录: |