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()
方法。