解析JSON的几个领域

时间:2016-11-11 21:40:13

标签: c# json visual-studio api parsing

我是JSON的新手,所以我希望你能帮助我。 我这样做了:

var myfields = Newtonsoft.Json.JsonConvert.DeserializeObject<Rootobject>(s);

这是JSON的链接:link 如你所见,我有很多字段,每个字段都会显示几次。 现在我只能访问第一个。 例如:

 final = myfields.results.First().warnings[0];

此String包含第一个警告字段。 我试着把而不是0 - 1但是我得到了一个错误。

我怎样才能得到其他人?

由于

1 个答案:

答案 0 :(得分:4)

创建只包含所需字段的类,然后反序列化json

public class YourTwoField
{
    [JsonProperty("field1")]
    public string FieldOne { get; set; }

    [JsonProperty("field2")]
    public string FieldTwo { get; set; }
}

var myfields = Newtonsoft.Json.JsonConvert.DeserializeObject<YourTwoField>(yourJsonString);
// use values
myfields.FieldOne

评论更新:

您的问题是您在开始时没有提供足够的信息。 您需要的字段位于JSON层次结构的底层。

  1. 将您的json结果复制到剪贴板
  2. 在Visual Studio中打开空文件
  3. 然后Edit - &gt; Paste Special - &gt;将JSON粘贴为类
  4. 现在将所有JSON模式作为我认为将生成一些RootObject的类,然后

    var root = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject>(yourJsonString);
    
    //Then your can brows to the values you want
    root.results.First().openfda.generic_name
    root.results.First().openfda.brand_name
    

    或循环所有结果

    foreach(var result in root.results)
    {
        result.openfda.generic_name;
        result.openfda.brand_name;
    }