如何将 JSON 数组解析为字符串? [复制]

Posted

技术标签:

【中文标题】如何将 JSON 数组解析为字符串? [复制]【英文标题】:How can I parse JSON Array to string? [duplicate] 【发布时间】: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 中获取确切的变量,它会说这样的变量不存在。

【问题讨论】:

这能回答你的问题吗? How can I parse JSON with C#? 创建一个匹配你的json的类并使用JsonConvert.DeserializeObject 【参考方案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);

【讨论】:

以上是关于如何将 JSON 数组解析为字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?

JS解析json数据(如何将json字符串转化为数组)

如何将 alamofire 返回 json 解析为 Swift 中的字符串数组?

在我们将其解析为 JSON 之前,Snowflake 如何转义对象数组字符串中的所有特殊字符?

JS解析json数据(如何将json字符串转化为数组)

如何将json字符串转换为数组