我有以下Json,我希望反序列化为TwitterTiles列表(见下文)。
JSON:
{
"twitterTile":
[
{
"hashtag": "#genoa",
"isPositive": true,
"dateSearched": "08/05/2013"
}
]
}
班级定义:
public class TwitterTile
{
public string hashtag { get; set; }
public bool isPositive { get; set; }
public string dateSearched { get; set; }
}
public class RootObject
{
public List<TwitterTile> twitterTile { get; set; }
}
问题是我似乎无法成功地反序列化这个json。我尝试了一些方法(下面),它让我无处可去。所有这些方法最终都返回一个null对象。我有点迷失为什么会发生这种情况。有人有什么想法吗?
var des = (RootObject)Newtonsoft.Json.JsonConvert.DeserializeObject(data, typeof(RootObject));
RootObject topics = JsonConvert.DeserializeObject<RootObject>(json);
答案 0 :(得分:0)
你的代码看起来不错。我运行它,并使用Json.NET v5.4.11对我进行反序列化。我使用的确切程序如下。我认为问题可能不是反序列化,但是无论你用什么方法来检索JSON都是行不通的。你确认你收到了有效的JSON吗?如果是这样,那么在您尝试反序列化之前,您的代码中还有其他内容可能会将其清零吗?当您在调试器中单步执行代码时会发生什么?
class Program
{
static void Main(string[] args)
{
string json =
@"{
""twitterTile"":
[
{
""hashtag"": ""#genoa"",
""isPositive"": true,
""dateSearched"": ""08/05/2013""
}
]
}";
RootObject result = JsonConvert.DeserializeObject<RootObject>(json);
foreach(TwitterTile tile in result.twitterTile)
{
Console.WriteLine("hashtag: " + tile.hashtag);
Console.WriteLine("isPositive: " + tile.isPositive);
Console.WriteLine("dateSearched: " + tile.dateSearched);
}
}
public class TwitterTile
{
public string hashtag { get; set; }
public bool isPositive { get; set; }
public string dateSearched { get; set; }
}
public class RootObject
{
public List<TwitterTile> twitterTile { get; set; }
}
}
输出:
hashtag: #genoa
isPositive: True
dateSearched: 08/05/2013