我不知道该怎么解释,但事情是这样的:
我正在尝试从DataGridView创建JSON文件的属性。我使用newtonsoft来处理JSON序列化。
从本质上讲,用户将把他们的值添加到两列中,这些值将被转换为属性。假设用户在Column1中输入值10,20,30,然后在Column2中输入“A”“B””C”,那么结果JSON应该是:
prompt_map: {
"10": "A"
"20": "B"
"30": "C"
}
它应该根据用户创建了多少行而继续运行。
我想我会分享我的代码,但我不确定它是否会有帮助,因为我甚至不知道如何处理这一点。
这些值将作为嵌套放入prompt_map字符串中
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim myJson As JsonStructure
myJson = New JsonStructure
myJson.prompt_map
Dim myString As String
myString = JsonConvert.SerializeObject(myJson, Formatting.Indented)
MsgBox(myString) 'debugging
End Sub
Public Class JsonStructure
Public prompt_map As Frames
End Class
Public Class Frames
'CODE GOES HERE?
End Class
这是我用来从DataGridView中提取数据的方法:
Dim colFrames As String
For i = 0 To DataGridView1.RowCount - 1
If Not (DataGridView1.Rows(i).Cells("Column1").Value = 0) Then
colFrames = colFrames + vbNewLine + (DataGridView1.Rows(i).Cells("Column1").Value)
End If
Next
Dim colDesc As String
For i = 0 To DataGridView1.RowCount - 1
If Not (DataGridView1.Rows(i).Cells("Column2").Value = 0) Then
colDesc = colDesc + vbNewLine + (DataGridView1.Rows(i).Cells("Column2").Value)
End If
Next
我不确定这有多有用,只是展示我的尝试。
任何帮助将不胜感激。我已经忙了一整天了。
2条答案
按热度按时间0ve6wy6x1#
一种选择是通过循环将行处理为
Dictionary(Of String, String)
,然后使用Newtonsoft序列化字典。但是对于这么多的工作,你最好记住JSON只是一个字符串,去掉中间件,直接通过StringBuilder或类似的东西构建结果。此外,Dictionary方法不允许重复的键,而dubiously-legal方法可能允许用户输入数据。
mwecs4sa2#
您可以使用
DataTable
作为您的DataGridView.DataSource
,并使用Dictionary(Of String, String)
保存序列化数据。输出量: