gpt4 book ai didi

c# - Json.NET解析对象中的数组

转载 作者:行者123 更新时间:2023-12-02 21:30:56 25 4
gpt4 key购买 nike

我在从一个数组中解析多个数组(嵌入到 JSON 中的多个对象中)时遇到了极大的困难。

基本上 json 看起来像

{
took:8,
success:true,
items:[
keywords:{...},
mainInfo:{
name:'...',
expDate:'...',
targetCities:[...],
targetStates:[...]
},
additionalInfo:{
skills:[],
homeTime:''
}
}

我的 C# 看起来像:

public class Job{
public string name{get;set;}
public List<string> targetCities{get;set;}
public List<string> targetStates{get;set;}
public List<string> skills{get;set;}
public string homeTime{get;set;}
}
public class Jobs{
private JObject o;
private List<Job> jobs;
public Jobs(string json){
this.o=JObject.Parse(json);
}
public List<Job> toList(){
List<JObject> allJobs=o["items"].Select(t => (JObject)t).ToList();
foreach(JObject i in allJobs){
Job j=new Job();
j.name=(string)i["mainInfo"]["name"];
j.targetCities=i["mainInfo"]["targetCities"].Select(t =>(string)t).ToList();
j.targetStates=i["mainInfo"]["targetStates"].Select(t =>(string)t).ToList();
j.expDate=(string)i["mainInfo"]["expDate"]
j.skills=i["additionalInfo"]["skills"].Select(t =>(string)t).ToList();
j.homeTime=(string)i["additionalInfo"]["homeTime"];
this.jobs.Add(j); //ERROR
}
return this.jobs;
}

该错误是一个空引用异常,信息为对象引用未设置为对象的实例。,但似乎此错误几乎不可预测地跳跃当我尝试更改代码来修复错误时。

我绝不是 C# 或 .NET 专家。我过去曾接触过这种语言,但我个人不喜欢它。所以请原谅我可能犯下的任何愚蠢错误。

添加:

我基本上是单步执行所有项目,并尝试相应地使用数据从每个项目创建一个 Job 对象。

最佳答案

您忘记初始化 jobs场,private List<Job> jobs;如果您始终生成作业列表,则不需要此私有(private)字段。使用局部变量。

public List<Job> toList()
{
jobs = new List<Job>(); //add this line
List<JObject> allJobs = o["items"].Select(t => (JObject)t).ToList();
foreach (JObject i in allJobs)
{
Job j = new Job();
j.name = (string)i["mainInfo"]["name"];
j.targetCities = i["mainInfo"]["targetCities"].Select(t => (string)t).ToList();
j.targetStates = i["mainInfo"]["targetStates"].Select(t => (string)t).ToList();
j.expDate = (string)i["mainInfo"]["expDate"];
j.skills = i["additionalInfo"]["skills"].Select(t => (string)t).ToList();
j.homeTime = (string)i["additionalInfo"]["homeTime"];
this.jobs.Add(j);
}
return this.jobs;
}

关于c# - Json.NET解析对象中的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22290095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com