• 0

Nested JSON data


Question

I want to consume the following JSON data structure using a VB.NET handler. The handler is working on the root keys - how do I deal with Sub > Sub-1, Sub > Sub-2, Another-Sub > Sub-3

{
    "ID": id,
    "ParentId": parentId,
    "Sub":
        [{
           "Sub-1":
                [{
                   "Data":"Test",
                   "MoreData":"MoreTestData"
                }],
            "Sub-2":
                [{
                   "Data":"Test 2",
                   "MoreData":"More Test Data 2"
                }],
        }],
    "Another-Sub":
        [{
           "Sub-3":
                [{
                   "Data":"Test 2",
                   "MoreData":"More Test Data",
                   "EvenMoreDate":"Even More Data"
                }],
           "Sub-4":
                [{
                   "Data":"Test 2",
                   "MoreData":"More Test Data",
                   "EvenMoreDate":"Even More Data"
                }],
        }],
}

 

My Handler code is as follows:

Dim js As New JavaScriptSerializer()
    Dim data As DataClass = js.Deserialize(Of DataClass)(json)
    
    Public Class DataClass
        Public Property ID() As String
            Get
                Return _ID
            End Get
            Set(value As String)
                _ID = value
            End Set
        End Property
        Private _ID As String

        etc etc
        
    End Class

    Public Class Sub
        Public Property Data() As String
    End Class



How can I access tier 2 / 3 json data?

All help appreciated - hopefully I've described my issue satisfactorily.

 

 

 

Link to comment
https://www.neowin.net/forum/topic/1276388-nested-json-data/
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Hi,

There are a plethora of ways to work with JSON on multi-levels, however you'll really want to add JSON.NET (Website Link) or similar to your application and utilise that library rather than "hacking" at it with a JavaScriptSerializer.
This will give you an easy way of serialising/deserialising and even implementing LINQ-To-JSON.

Enjoy!

  • 0
  On 27/10/2015 at 14:10, i11usive said:

Thanks Kami .. I was a little reluctant to use a third party solution seeing as there is support within the framework. I'll have a look and see if that helps any.

Appreciate the response.

Newtonsoft has been a standard .NET library for at least the last year or two.

 

This is a standard web api project:

 

Capture.PNG

Edited by adrynalyne
This topic is now closed to further replies.
  • Posts

    • KDE Plasma 6.5 will notify you if your printer's ink is low by David Uzondu This week, the KDE team continued work on the upcoming Plasma 6.5.0 as well as Plasma 6.4's fourth bug fix release, 6.4.4. As usual, both Plasma versions saw several UI tweaks, bug fixes, and performance improvements. The most notable changes are discussed in this article. Let's start with Plasma 6.5. The desktop environment is getting a useful feature that tells you when your printer is low on ink. This works by having the system check the Common Unix Printing System, or CUPS, for marker levels after a print job is created or completed. CUPS stores attributes like marker-levels in its printers.conf file, and once a level is determined to be low, it triggers a marker-supply-low-warning that Plasma will now use to inform you. UI improvements scheduled for 6.5 include disabling key repeat for certain global shortcuts, like toggling Overview, to prevent rapid screen flashing that could be a seizure risk. There is a better "Someone started sharing this screen" notification that now appears only after a connection is fully established. You will also find standard KDE styling with the "Confirm deleting network connection" dialog, and more consistent spacing in the Global Menu widget. As for bug fixes in 6.5, a layout bug that caused visual overflow in the printer setup page has been corrected. An issue that stopped you from using the virtual keyboard in the Application Dashboard search field is fixed, and XDG portal-using apps can now request screencasts of new virtual outputs. Finally, the clipboard configuration window's size and position information has been moved from the state config file to the settings file. Moving on to 6.4.4, the hitboxes for desktop items now correctly match their visual styling. This means no more accidentally selecting an invisible box around a file. And when you mark a notification as low priority, it will now correctly appear in your history if it arrived during Do Not Disturb mode, so it does not just vanish. If you're experiencing a Kwin crash on login, particularly in a QEMU virtual machine, 6.4.4 has a fix for that on the way. Other bug fixes 6.4.4 brings include: A fix for the Global Menu widget's single-button mode for X11 users. The search field in the Wayland version of the Global Menu widget works again. An annoying bug in the Global Shortcuts XDG portal that made apps think they had no shortcuts has been resolved. Plasma Browser Integration's built-in Share feature has been repaired. Plasma 6.4.4 will drop on the 5th of next month. You can find more details on the official KDE Blog.
    • I just remember wondering how she was ever a bridge officer at all with all of her insufferable insecurities. I am sure she's a wonderful person in real life, but the character was poorly written. They even had to dedicate a whole episode to her being forced into taking the responsibility of leading cadets out of a problem of some sort as if to show how she is "growing" into her function. Never bridge officer material and I just rolled my eyes at her scenes and eventually stopped watching the show altogether, but also because of all the lead character's cry/whisper/talking that frustrated me.
    • Didnt know it was coded/decoded so my bad.
    • Why isn't it more widespread then? What about people that like PC gaming and don't want/don't own a console? MMO gaming/professional work with specific software aren't "edge cases".
  • Recent Achievements

    • Week One Done
      Homayoun Hotak earned a badge
      Week One Done
    • Dedicated
      Profit earned a badge
      Dedicated
    • One Month Later
      hhgygy earned a badge
      One Month Later
    • Week One Done
      hhgygy earned a badge
      Week One Done
    • One Year In
      NIKI77 earned a badge
      One Year In
  • Popular Contributors

    1. 1
      +primortal
      641
    2. 2
      ATLien_0
      241
    3. 3
      Xenon
      168
    4. 4
      neufuse
      149
    5. 5
      +FloatingFatMan
      123
  • Tell a friend

    Love Neowin? Tell a friend!