提问人:Bjorn Meijer 提问时间:9/22/2023 最后编辑:T.S.Bjorn Meijer 更新时间:9/25/2023 访问量:54
Json数组的问题
Problems with Json array
问:
我正在编写一个带有 API 的 VB.Net 应用程序,用于将值发送到数据源。 我的 JSON 输出是使用 NewtonSoft.Json 制作的,如下所示:
{
"Id": null,
"Name": "Werkkaart_tests",
"ExternalId": "Werkkaart_test",
"Headers": null,
"Rows": null,
"NewRows": ["val 1, val 2, val 3, val 4"],
"DeletedRows": null,
"CompanyId": 1111,
"IntegrationKey": "lsfjlsfjlsfj3987"
}
使用 PUT 请求,我可以更新数据源。 JSON 的模型架构如下所示:
{
"Id": "",
"Name": "",
"ExternalId": "",
"Headers": [
{
"Name": "",
"DisplayAt": ""
}
],
"Rows": [
"Array[string]"
],
"NewRows": [
"Array[string]"
],
"DeletedRows": [
"Array[string]"
],
"CompanyId": 0,
"IntegrationKey": ""
}
数据源有 4 列,分别名为 col1、col2、col3 和 col4。 要向数据源添加新行,我必须在 NewRows 中创建一个字符串数组。
当我发送我的 JSON 字符串时,第 1 列到第 4 列填充了以下值:
col1 | col2 | col3 | col4 (英语) |
---|---|---|---|
瓦尔 | 1 | 瓦尔 | 2 |
我想要的是以下内容:
col1 | col2 | col3 | col4 (英语) |
---|---|---|---|
val1 | val2 | val3 | val4 |
我尝试在我的值周围放置单引号,但这不起作用。 我还尝试了以下方法:
"NewRows": ["val 1", "val 2", "val 3", "val 4"],
但我得到以下结果:
col1 | col2 | col3 | col4 (英语) |
---|---|---|---|
val1 | |||
val2 | |||
val3 | |||
val4 |
下面是 vb 代码:
Dim src As New DSS.DataSource
Dim values As List(Of String) = New List(Of String)
values.Add("val 1")
values.Add("val 2")
values.Add("val 3")
src.Name = "SourceName"
src.ExternalId = "Source_ExtID"
Dim newRowsString As String = String.Join(", ", values)
src.NewRows = New List(Of String) From {newRowsString}
Dim json As String = JsonConvert.SerializeObject(src)
Console.WriteLine(json)
答:
0赞
Craig
9/25/2023
#1
请注意,的类型表示为 。但是您提供的是一个标量字符串,即 .您应该在数组中将值作为单独的字符串提供,因此这是一个数组的数组,即生成的 json 应该是 .NewRows
"Array[String]"
"val 1, val 2, val 3, val 4"
NewRows
"NewRows" : [["val 1", "val 2", "val 3", "val 4"]]
外部数组中的每个元素都是不同的行,内部数组的每个元素都是该特定行中的单独列。
评论
"val 1, val 2, val 3, val 4"
<-- 这是一个单一的数组项,因为涉及 JSON"NewRows" : [["val 1", "val 2", "val 3", "val 4"]]