投稿者 まほ  (学生) 投稿日時 2021/6/29 12:32:12
るきおさん有難うございます。
方法4も書き方がシンプルなのですごく分かり易かったです。

続けてご質問ですが、fruit,animal,flowerのグループは実際には3つではなく、データの追加削除によってグループ数が変動するので動的にキーと値を追加したいのですが、その場合どのように記述すればよいのでしょうか?
イメージ的にはこのような感じです。

    Private JsonDataTable As New DataTable

    Private Sub SaveJson(ByVal FilePath As String)

        Dim Grouplist As New List(Of String)

        'DataTableから列(グループ名)を取得 
        For Each Column As DataColumn In JsonDataTable.Columns
            Grouplist.Add(Column.ColumnName)
        Next

        Dim content As New Dictionary(Of StringObject)
        content.Add("list"New Dictionary(Of StringObjectFrom {
                 {"grouplist", {Grouplist}}
                 })

        'ここから動的にキーを追加したい 
        For i As Integer = 0 To JsonDataTable.Columns.Count - 1
                {Grouplist(i), {JsonDataTable.AsEnumerable().Select(Function(row) row(Grouplist(i))).ToArray()}}
                })
        Next

        Dim jsonText As String = JsonConvert.SerializeObject(content, Formatting.Indented)

        Debug.WriteLine(jsonText)

        'JSONをファイルに保存 
        Dim enc As Encoding = Encoding.UTF8
        My.Computer.FileSystem.WriteAllText(FilePath, jsonText, False, enc)

    End Sub