Click here to Skip to main content
15,907,396 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
iam try make all object upper case at json file
how i can do that from array ???

Private Shared Function Serialize(ByVal jObj As JToken) As String
    If jObj.Type = JTokenType.String Then
        Return "" & jObj.Value(Of String)() & ""
    End If

    Dim serializedString As StringBuilder = New StringBuilder()

    For Each item In jObj.Children().ToList

        If item.Type <> JTokenType.Array Then
            Dim jObjItem = item.ToObject(Of JObject)()
            For Each itemKeyPair In jObjItem
                Dim itemname As String = itemKeyPair.Key.ToString
                Dim itemKeyVALUE As String = itemKeyPair.Value.ToString

                If jObjItem.First.Root(itemname).Type = JTokenType.Array Then
                    ' For Each arrval In jObj.Children().First.Root.First(itemname).ToList
                    'MessageBox.Show(arrval.Children.First.Root.First(itemname).ToString)
                    For i As Integer = 1 To jObjItem.First.Count 'arrval.Root.First
                        serializedString.Append(Chr(34) & itemname.ToUpper & Chr(34))
                        serializedString.Append(Chr(34) & itemname.ToUpper & Chr(34) & Chr(34) & itemKeyVALUE.ToUpper & Chr(34))

                    Next

                    'Next
                Else
                    serializedString.Append(itemname.ToUpper)
                    serializedString.Append(Chr(34) & itemKeyVALUE.ToUpper & Chr(34))

                End If

            Next
        End If
    Next

    Return serializedString.ToString()


What I have tried:

Private Shared Function Serialize(ByVal jObj As JToken) As String
    If jObj.Type = JTokenType.String Then
        Return "" & jObj.Value(Of String)() & ""
    End If

    Dim serializedString As StringBuilder = New StringBuilder()

    For Each item In jObj.Children().ToList

        If item.Type <> JTokenType.Array Then
            Dim jObjItem = item.ToObject(Of JObject)()
            For Each itemKeyPair In jObjItem
                Dim itemname As String = itemKeyPair.Key.ToString
                Dim itemKeyVALUE As String = itemKeyPair.Value.ToString

                If jObjItem.First.Root(itemname).Type = JTokenType.Array Then
                    ' For Each arrval In jObj.Children().First.Root.First(itemname).ToList
                    'MessageBox.Show(arrval.Children.First.Root.First(itemname).ToString)
                    For i As Integer = 1 To jObjItem.First.Count 'arrval.Root.First
                        serializedString.Append(Chr(34) & itemname.ToUpper & Chr(34))
                        serializedString.Append(Chr(34) & itemname.ToUpper & Chr(34) & Chr(34) & itemKeyVALUE.ToUpper & Chr(34))

                    Next

                    'Next
                Else
                    serializedString.Append(itemname.ToUpper)
                    serializedString.Append(Chr(34) & itemKeyVALUE.ToUpper & Chr(34))

                End If

            Next
        End If
    Next

    Return serializedString.ToString()
Posted

1 solution

It looks to me that you are trying to convert the fields, but not the values...

Try this instead:

Private Shared Function Serialize(ByVal jObj As JToken) As String
    If jObj.Type = JTokenType.String Then
        Return "" & jObj.Value(Of String)().ToUpper() & ""
    End If

    Dim serializedString As StringBuilder = New StringBuilder()

    For Each item In jObj.Children().ToList
        If item.Type <> JTokenType.Array Then
            Dim jObjItem = item.ToObject(Of JObject)()
            For Each itemKeyPair In jObjItem
                Dim itemName As String = itemKeyPair.Key.ToString().ToUpper()
                Dim itemValue As String = itemKeyPair.Value.ToString().ToUpper()

                serializedString.Append(Chr(34) & itemName & Chr(34) & ": " & Chr(34) & itemValue & Chr(34) & ", ")
            Next
        Else
            Dim arrayName As String = item.Path.ToString().ToUpper()
            Dim arrayValues As IEnumerable(Of JToken) = item.Values()

            serializedString.Append(Chr(34) & arrayName & Chr(34) & ": [")
            For Each value In arrayValues
                serializedString.Append(Chr(34) & value.ToString().ToUpper() & Chr(34) & ", ")
            Next
            serializedString.Remove(serializedString.Length - 2, 2) ' Rimuovi la virgola e lo spazio aggiunti all'ultimo elemento
            serializedString.Append("], ")
        End If
    Next

    Return serializedString.ToString()
End Function
 
Share this answer
 
Comments
Dave Kreskowiak 14-May-24 9:27am    
Pay attention to the dates on the questions. They get bumped to the top of the QA list mostly because of spammers dropping their loads on old questions.
ADemontis 19-May-24 13:36pm    
@dave i just watched the list of unanswered questions and wanted to help

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900