2010-07-15 21 views
2

{"images":[{"id":"obj_0","src":"background.jpg","width":"640","height":"480"},{"id":"obj_9","src":"elements/pipe.png","width":50,"height":44,"top":196,"left":154,"rotation":"0"},{"id":"obj_13","src":"elements/cigarette.png","width":45,"height":67,"top":168,"left":278,"rotation":"0"},{"id":"obj_10","src":"elements/hat.png","width":227,"height":122,"top":28,"left":241,"rotation":"0"},{"id":"obj_14","src":"elements/hair.png","width":244,"height":204,"top":-17,"left":98,"rotation":"0"}]}幫助在vb.net評估此JSON字符串數組

請幫助我如何獲得和/或從該JSON字符串與VB.Net評估對象。

謝謝

+0

檢查http://stackoverflow.com/questions/401756/parsing-json-using-json-net主要答案是在C#中,但它很容易轉換爲VB.NET。 – 2010-07-15 10:09:16

+0

謝謝!我已經檢查過這個,發現它與Carter下面的簡單解決方案相同。 – EkisPinoy 2010-07-16 05:47:32

回答

0

這是一個有趣的,謝謝。

這是VB中的答案。

Private Sub form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles form1.Load 
    Dim json = litData.Text 'or put your json string in here {"images":[{"id"...}]} etc.' 

    Dim ser As New Web.Script.Serialization.JavaScriptSerializer 
    Dim images = ser.Deserialize(Of jsonImageArray)(json) 

    'Now do something with your deserialized data.' 
End Sub 

'for {"images" collection' 
Public Class jsonImageArray 
    Public images As jsonImage() 
End Class 

'for sub elements' 
Public Class jsonImage 
    Public id As String 
    Public src As String 
    Public width As Int32 
    Public height As Int32 
    Public top As Int32 
    Public left As Int32 
    Public rotation As Double 
End Class 
+0

謝謝卡特!我測試過它,它工作。是的...這真的很有趣。這實際上是我第一次尋求幫助。我所做的只是通過網絡進行搜索,但我可以說,這很好。 我只是有一個問題,即時通訊使用.net 2008年,有一個警告,javascriptserializer已經過時,它應該是DataContractSerializer。任何想法或者可能,等同於你提供的東西。 再次,非常感謝。 :D – EkisPinoy 2010-07-16 05:43:24

+0

它只在.net 3.5 SP1(huh ?!)之前過時,所以你可以安全地使用它。看起來圍繞這一點有很大的爭議。很多人都很不高興,所以它不再過時。 請參閱這篇文章的詳細信息... http://stackoverflow.com/questions/536359/why-microsoft-made-javascriptserializer-obsolete-prior-to-net-3-5-sp1-and-again – 2010-07-16 15:42:14