C# Interop 将 JSON 值添加到工作表
C# Interop add JSON values to worksheet
如何从一个 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"
}
]}
预期结果:
这就是我尝试完成此操作的方式,但是 returns 出现以下错误:
The best overloaded method match for 'System.Collections.Generic.List.AddRange(System.Collections.Generic.IEnumerable)' has some invalid arguments
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
,我会收到以下错误:
The best overloaded method match for 'System.Collections.Generic.List.Add(string)' has some invalid arguments
item.site_title
不是字符串,但您正试图将其添加到 string
的集合中
如果我没记错 JsonConvert to a dynamic
结果是 JArray/JObject/JToken,那么您可能想看看确定 item.site_title
是什么类型,并查看其适当的方法来提取string
.
的值
至于使用AddRange()
方法,你确定这是你想用的吗?您在尝试添加单个元素范围的循环内。我认为您希望改用 Add()
。确定类型并转换为字符串后,使用 Add()
方法。
如何从一个 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"
}
]}
预期结果:
这就是我尝试完成此操作的方式,但是 returns 出现以下错误:
The best overloaded method match for 'System.Collections.Generic.List.AddRange(System.Collections.Generic.IEnumerable)' has some invalid arguments
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
,我会收到以下错误:
The best overloaded method match for 'System.Collections.Generic.List.Add(string)' has some invalid arguments
item.site_title
不是字符串,但您正试图将其添加到 string
如果我没记错 JsonConvert to a dynamic
结果是 JArray/JObject/JToken,那么您可能想看看确定 item.site_title
是什么类型,并查看其适当的方法来提取string
.
至于使用AddRange()
方法,你确定这是你想用的吗?您在尝试添加单个元素范围的循环内。我认为您希望改用 Add()
。确定类型并转换为字符串后,使用 Add()
方法。