2010-07-15 42 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