C#Interop将JSON值添加到工作表

我怎样才能从一个JSON对象获得所有的值,然后一次显示他们的工作表?

这是我的JSON对象的外观:

 {"report_suites": [ { "rsid": "op-api-docs", "site_title": "API Docs Portal" }, { "rsid": "op-bigideas", "site_title": "Big Ideas" }, { "rsid": "op-education", "site_title": "Education" }, { "rsid": "op-education-dev", "site_title": "Education - Dev" }, { "rsid": "op-global", "site_title": "Global" }, { "rsid": "op-global-dev", "site_title": "Global - Dev" } ]} 

预期结果:
在这里输入图像说明

这是我试图做到这一点,但它返回以下错误:

“System.Collections.Generic.List.AddRange(System.Collections.Generic.IEnumerable)”的最佳重载方法匹配有一些无效参数

 dynamic response = JsonConvert.DeserializeObject(responseXml); var just_rs = response.report_suites; var report_title = new List<string>(); var report_id = new List<int>(); foreach(var item in just_rs) { report_title.AddRange(item.site_title); report_id.AddRange(item.rsid); } rng = (Excel.Range)ws.Range[ws.Cells[2, 1], ws.Cells[report_id.Length, 1]]; rng.Value = report_id; rng = (Excel.Range)ws.Range[ws.Cells[2, 2], ws.Cells[report_title.Length, 2]]; rng.Value = report_title; 

哪里的response是我上面提到的JSON对象。

如果我使用Add而不是AddRange我得到以下错误:

“System.Collections.Generic.List.Add(string)”的最佳重载方法匹配有一些无效的参数

item.site_title不是一个string,但是你正试图把它添加到string的集合中

如果我正确地记得JsonConvert在JArray / JObject / JToken中的一个dynamic结果,所以你可能要看看确定什么types的item.site_title是,并看着它的适当的方法提取到一个string的值。

至于使用AddRange()方法,你确定这是你想要使用? 你在循环内试图添加一个单一元素的范围。 我想你正在寻找使用Add()来代替。 确定types并转换为string后,使用Add()方法。