Return mvc 4 vb.net 中的 json 对象列表

Return a list of objects as json in mvc 4 vb.net

我需要 return 以下 json :

 [
{
    "tag": "test",
    "values": [
        {
            "en": "english text",
            "ar": "arabic text"
        },
        {
            "en": "english text",
            "ar": "arabic text"
        }
    ]
},
{
    "tag": "test2",
    "values": [
        {
            "en": "english text",
            "ar": "arabic text"
        },
        {
            "en": "english text",
            "ar": "arabic text"
        }
    ]
}
]

我需要在 mvc4.net 中 return 以上 json 所以我尝试创建以下 类 :

 Public Class AppLabels
    Public Property labels As New labelsTag()
End Class

Public Class labelsTag
    Public Property tag As String = ""
    Public Property values As DataTable
End Class

但我无法设置 labelsTag 的列表,换句话说我无法写:

   labels.labels(0).tag_name = "test"
   labels.labels(0).values = datatable1

因为labels.labels没有被当作数组...

任何帮助...

首先你需要为这个节点创建一个class:

 {
   "en": "english text",
   "ar": "arabic text"
 }

Class 将是:

Public Class value

    Public en As String

    Public ar As String
End Class

然后这个json部分

 {
        "tag": "test",
        "values": [
            {
                "en": "english text",
                "ar": "arabic text"
            },
            {
                "en": "english text",
                "ar": "arabic text"
            }
        ]
    }

将由 :

表示
Public Class Smalljson

    Public tag As String

    Public values As List(Of value)
End Class

最后一个 class 将是:

    Public Class finaljson

       Public json As List(Of Smalljson)
    End Class

示例如何使用:

 Dim json As finaljson = New finaljson
 Dim j As Integer = 0
 Do While (j < 2)
    Dim sj As Smalljson = New Smalljson
    sj.tag = ("test" + j)
    Dim i As Integer = 0
    Do While (i < 2)
        Dim v As value = New value
        v.en = ("english text" + i)
        v.ar = ("arabic text" + i)
        sj.values.Add(v)
        i = (i + 1)
    Loop
    json.Add(sj)
    j = (j + 1)
Loop

注意:我没有测试代码,但我想它应该可以完美运行

干杯!