【问题标题】:How can I parse JSON Array to string? [duplicate]如何将 JSON 数组解析为字符串? [复制]
【发布时间】:2021-02-12 11:01:10
【问题描述】:

我正在尝试使用 Newtonsoft.Json 获取 JSON 内容。要读取一个变量,我有那个方法,它工作正常:

        dynamic data = JObject.Parse(json);
        return data.FirstName;

如果我想读取数组 ex 中的变量,问题就开始了:

{"family": [{"fatherFirstName": "John", "motherFirstName": "July"}, {"fatherFirstName": "Jack", "motherFirstName": "Monika"]}

例如,我只想知道每个父亲的名字。 有人知道我该怎么做吗?

编辑1: 好的,我修复了从 JArray 到字符串的转换,但现在存在问题,它可以正确读取族变量,但是如果我想从 Array 中获取确切的变量,它会说这样的变量不存在。

【问题讨论】:

标签: c# arrays json


【解决方案1】:

首先,您的 JSON 字符串格式无效。您可以检查它here 进行验证。其次,最好的方法是创建一个类而不是使用JsonConvert.DeserializeObject。就您而言,这是完整的工作解决方案:

    static void Main(string[] args)
    {
        string json = @"{'family': [{'fatherFirstName': 'John', 'motherFirstName': 'July'}, {'fatherFirstName': 'Jack', 'motherFirstName': 'Monika'}]}";
        Families families = JsonConvert.DeserializeObject<Families>(json);
        foreach (var family in families.family)
            Console.WriteLine(family.fatherFirstName);
    }

    public class Families
    {
        public List<Family> family { get; set; }
    }

    public class Family
    {
        public string fatherFirstName { get; set; }
        public string motherFirstName { get; set; }
    }

【讨论】:

    【解决方案2】:
    public class familyData
    {
      public string fatherFirstName {get; set;}
      public string motherFirstName {get; set;}      
    }
    public class familyList
    {
      public List<familyData> family
    }            
    

    在你的方法中

    var data = JsonConvert.DeserializeObject&lt;familyList&gt;(json);

    【讨论】:

      猜你喜欢
      • 2018-06-11
      • 1970-01-01
      • 2017-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多