Something like:

Code:
Option Explicit

Private Sub Main()
    With New JsonBag
        .Whitespace = True
        .Item("projectCode") = "xel0010"
        .Item("productCode") = "121"
        .Item("plannedNum") = 100
        .Item("planStartTime") = "2021-09-08 00:00:00"
        .Item("planEndTime") = "2021-09-08 23:59:59"
        With .AddNewArray("workOrderCustomFieldsValue")
            With .AddNewObject()
                .Item("name") = "key1"
                .Item("value") = "v1"
            End With
            With .AddNewObject()
                .Item("name") = "key2"
                .Item("value") = "v2"
            End With
        End With
        MsgBox .JSON
    End With
End Sub
Result:

Code:
{
    "projectCode":"xel0010",
    "productCode":"121",
    "plannedNum":100,
    "planStartTime":"2021-09-08 00:00:00",
    "planEndTime":"2021-09-08 23:59:59",
    "workOrderCustomFieldsValue":[
        {
            "name":"key1",
            "value":"v1"
        },
        {
            "name":"key2",
            "value":"v2"
        }
    ]
}