如何将 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<familyList>(json);
【讨论】:
以上是关于如何将 JSON 数组解析为字符串? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
在 Azure 数据工厂中使用复制数据活动将 xml 解析为 json 时如何删除转义字符?
如何将 alamofire 返回 json 解析为 Swift 中的字符串数组?