我使用牛顿的Json。Net将Json反序列化为。Net对象。我想知道一个人是否可以从一个一般对象转换为一个特定对象。
ie:object myObject JsonConvert.DeserializeObject<object>(myJsonValue);
myOrder = (Order)myObject;
代码更多的是描述我的问题。我明白一个人可以这样做:
object myObject JsonConvert.DeserializeObject<order>(myJsonValue);
但由于这是一个辅助函数,所以它不可能是"order",而是更一般的东西。
谢谢。编辑:
得到错误:
Getting Unable to cast object of type 'Newtonsoft.Json.Linq.JObject' to type 'Order'
我要在这里做一个假设,因为这个问题不是100%清楚,但我认为我有一个好主意:
但由于这是一个辅助函数,所以它不可能是"order",而是更一般的东西。
你需要给你的帮助函数添加一个类型参数:
public class SomeHelper
{
public T Deserialize<T>(string json)
{
return JsonConvert.DeserializeObject<T>(json);
}
}
使用它:
SomeHelper helper = new SomeHelper();
string json = "...";
Order order = helper.Deserialize<Order>(json);
与其反序列化到object
,还不如反序列化到JToken
。
JToken myObject = JsonConvert.DeserializeObject<JToken>(myJsonValue);
你可以使用JToken.ToObject<T>()
方法来执行最后的转换:
Order order = myObject.ToObject<Order>();