如何使用json.net反序列化简单类型?
net对于反序列化对象很方便,但我不知道如何使用它来反序列化一些简单类型,例如string、int 不确定我是否做对了,请帮忙,谢谢 WCF返回字符串看起来像如何使用json.net反序列化简单类型?,json,json.net,Json,Json.net,net对于反序列化对象很方便,但我不知道如何使用它来反序列化一些简单类型,例如string、int 不确定我是否做对了,请帮忙,谢谢 WCF返回字符串看起来像 {"PingResult":100} 如果呼叫 int result = JsonConvert.DeserializeObject<int>(jsonString); 您不是反序列化整数,而是包含integer属性的对象。您需要提供这样一个类,以便反序列化工作,例如: class Ping { public in
{"PingResult":100}
如果呼叫
int result = JsonConvert.DeserializeObject<int>(jsonString);
您不是反序列化整数,而是包含integer属性的对象。您需要提供这样一个类,以便反序列化工作,例如:
class Ping
{
public int PingResult {get; set;}
}
然后打电话
Ping ping = JsonConvert.DeserializeObject<Ping>(jsonString);
int result = ping.PingResult;
反序列化存储为字符串(此问题的标题)的简单类型可以按如下方式完成:
private static T ParseStringToTypedValue<T>(string value)
{
if (typeof(T) == typeof(string))
{
return JToken.Parse($"\"{value}\"")
.Value<T>();
}
return JToken.Parse(value)
.Value<T>();
}
private static T ParseStringToTypedValue(字符串值)
{
if(typeof(T)=typeof(string))
{
返回JToken.Parse($“\{value}\”)
.Value();
}
返回JToken.Parse(值)
.Value();
}
这应该处理所有基本类型、浮点、整数、字符串等 哦,我认为它可能可以处理这个问题,因为为每个类创建新类不是一个好主意,特别是如果我们有很多方法要调用的话:p尽管如此,调用JObject API这样做还是非常方便的。谢谢你,伙计:]这里有密码,以防有人需要<代码>字符串json=“{\“PingResult\”:100}”;JObject jo=JObject.Parse(json);JToken result=jo[“PingResult”]代码>我很高兴我提供了帮助,将您的示例添加到我的答案中,使其更加完整。
string json="{\"PingResult\":100}";
JObject jo = JObject.Parse(json);
JToken jToken = jo["PingResult"];
int result = (int)jToken;
private static T ParseStringToTypedValue<T>(string value)
{
if (typeof(T) == typeof(string))
{
return JToken.Parse($"\"{value}\"")
.Value<T>();
}
return JToken.Parse(value)
.Value<T>();
}