C# 使用C反序列化JSON以返回项
我有以下资料:C# 使用C反序列化JSON以返回项,c#,json,C#,Json,我有以下资料: {"documents": [{"keyPhrases": [ "search results","Azure Search","fast search indexing","sophisticated search capabilities","Build great search experiences","time-sensitive search scenarios"
{"documents":
[{"keyPhrases":
[
"search results","Azure Search","fast search indexing","sophisticated search capabilities","Build great search experiences","time-sensitive search scenarios","service availability","managed service","service updates","index corruption","near-instantaneous responses","multiple languages","integrated Microsoft natural language stack","multiple indexes","application changes","ranking models","great relevance","years of development","primary interaction pattern","storage","Bing","data volume","rich","suggestions","hassle of dealing","Reliable throughput","website","incremental cost","complexity","faceting","traffic","mobile apps","business goals","users","applications","user expectations","Office"
],
"id":"1"}],
"errors":[]
}
我需要提取关键短语中的项目,但完全不知道如何做
我尝试了以下方法:
KeyPhraseResult keyPhraseResult = new KeyPhraseResult();
/// <summary>
/// Class to hold result of Key Phrases call
/// </summary>
public class KeyPhraseResult
{
public List<string> keyPhrases { get; set; }
}
keyPhraseResult = JsonConvert.DeserializeObject<KeyPhraseResult>(content);
内容包含上面的JSON字符串
但是,keyPhraseResult返回空值
有人能帮我找到正确的方向吗
多谢各位
public class Document
{
public List<string> keyPhrases { get; set; }
public string id { get; set; }
}
public class RootObject
{
public List<Document> documents { get; set; }
public List<object> errors { get; set; }
}
您应该具有以下结构:
var result = JsonConvert.DeserializeObject<RootObject>(content);
如果我没弄错的话,这是个打字错误。JSON中的关键字短语和codedocuments中的关键字短语是一个具有属性keyPhrases的对象数组。您缺少数组级别和documents属性。谢谢,Bas,您是正确的。我实际上没有意识到他们需要完全相同,尽管这是合乎逻辑的。我已经换了。谢谢!!这真是太棒了!!然后,我添加了以下内容以使用关键字短语填充KeyPhraseResult类:KeyPhraseResult.KeyPhrases=result.documents[0]。KeyPhrases;-再次感谢!!