VB.Net调用API更新数据源时NewRows数组JSON格式异常问题
正确构造NewRows数组实现一行四列数据填充
问题核心
API对NewRows的解析规则明确:
- 数组中的每个元素对应完整的一行数据
- 行内多列值需用**无空格的分隔符(通常为逗号)**拼接成单个字符串
之前的错误原因
错误方式1:用
", "(逗号加空格)拼接列值- 生成JSON:
"NewRows": ["val 1, val 2, val 3, val 4"] - API将空格识别为列分隔符,错误拆分出
val、1、val、2
- 生成JSON:
错误方式2:将每个列值作为
NewRows独立元素- 生成JSON:
"NewRows": ["val 1", "val 2", "val 3", "val 4"] - API将每个元素判定为单独一行,因此生成4行仅第一列有值的结果
- 生成JSON:
正确实现代码
Dim src As New DSS.DataSource Dim values As List(Of String) = New List(Of String) values.Add("val1") values.Add("val2") values.Add("val3") values.Add("val4") ' 补充第四列值 src.Name = "SourceName" src.ExternalId = "Source_ExtID" ' 使用无空格逗号拼接成完整一行数据 Dim newRowsString As String = String.Join(",", values) ' 将整行字符串作为NewRows数组的唯一元素 src.NewRows = New List(Of String) From {newRowsString} Dim json As String = JsonConvert.SerializeObject(src) Console.WriteLine(json)
生成的正确JSON输出
{ "Id": null, "Name": "SourceName", "ExternalId": "Source_ExtID", "Headers": null, "Rows": null, "NewRows": ["val1,val2,val3,val4"], "DeletedRows": null, "CompanyId": 0, "IntegrationKey": "" }
最终效果
该JSON会被API正确解析为一行四列数据,与期望结果一致:
| col1 | col2 | col3 | col4 |
|---|---|---|---|
| val1 | val2 | val3 | val4 |
内容的提问来源于stack exchange,提问作者Bjorn Meijer
相关产品推荐
相关产品推荐

