2014-07-04 5 views
1

저는 Blockchain.info API를 사용하고 있습니다. JSON 응답을 deserialize하고 싶습니다. 답변 예 :Deserialize Blockchain.info JSON

{ 
    "addresses": [ 
     { 
      "balance": 1400938800, 
      "address": "1Q1AtvCyKhtveGm3187mgNRh5YcukUWjQC", 
      "label": "SMS Deposits", 
      "total_received": 5954572400 
     }, 
     { 
      "balance": 79434360, 
      "address": "1A8JiWcwvpY7tAopUkSnGuEYHmzGYfZPiq", 
      "label": "My Wallet", 
      "total_received": 453300048335 
     }, 
     { 
      "balance": 0, 
      "address": "17p49XUC2fw4Fn53WjZqYAm4APKqhNPEkY", 
      "total_received": 0 
     } 
    ] 
} 

문제는이 문제를 해결하는 방법입니다. 나는 이것을 시도했지만 작동하지 않습니다 :

Public Function LoadJson(ByVal json As String) 
    Dim items As List(Of addresses) = JsonConvert.DeserializeObject(Of List(Of addresses))(json) 
    Return items 
End Function 
Public Class addresses 
    Public addresses As address() 
End Class 
Public Class address 
    Public balance 
    Public address 
    Public label 
    Public total_received 
End Class 

감사합니다!

+0

(주소) 목록으로 희미한 항목을 시도하는 데 도움 수 있기를 바랍니다

= JsonC onvert.DeserializeObject (Of List (Of Address)) (json) –

+0

아니요, 작동하지 않습니다. – LordCoder

+0

오류가 있습니까? 코드를 단계별로 실행하여 좀 더 자세한 정보를 제공 할 수 있습니까? –

답변

0

당신은 간단하게 알아낼 수 있습니다

http://json2csharp.com/ 이동하여 JSON을 붙여 그것은 당신의 클래스와 그 종속성을 만들 것입니다.

그런 다음, 단순히 javascript.serialize의 앱과 사용에 새 하나를 만들 수 있습니다 아무것도를 역 직렬화하지 않으며 그것은 완벽하게 작동 완벽하게 완벽하게 작동 콘솔 응용 프로그램의 예를 아래에 여기

작동합니다 :

Imports System.Net 
Imports System.IO 
Imports System.Configuration 
Imports System.Web.Script.Serialization 

Module Module1 
    Dim js As New JavaScriptSerializer 

    Sub Main() 

    Dim json As String = String.Empty 

    Using sr As New StreamReader("C:\Users\Giorgio\Desktop\GOOGLEDRIVE\hpc\PROGETTI VS PERSONALI\VISUALSTUDIOPROJECT\2014\Smples\Smples\json.txt") 
     json = sr.ReadToEnd 
    End Using 
    Dim separator As String = "**********************************************************" 
    Dim root As RootObject = js.Deserialize(Of RootObject)(json) 

    For Each el In root.addresses 
     Console.WriteLine(String.Format("{0}" & vbCrLf & "{1}" & vbCrLf & "{2}" & vbCrLf & "{3}" & vbCrLf & separator, el.address, el.balance, el.label, el.total_received)) 
    Next 


     Console.ReadLine() 
End Sub 


Public Class Address 
    Public Property balance() As Integer 
     Get 
      Return m_balance 
     End Get 
     Set(value As Integer) 
      m_balance = Value 
     End Set 
    End Property 
    Private m_balance As Integer 
    Public Property address() As String 
     Get 
      Return m_address 
     End Get 
     Set(value As String) 
      m_address = Value 
     End Set 
    End Property 
    Private m_address As String 
    Public Property label() As String 
     Get 
      Return m_label 
     End Get 
     Set(value As String) 
      m_label = Value 
     End Set 
    End Property 
    Private m_label As String 
    Public Property total_received() As Object 
     Get 
      Return m_total_received 
     End Get 
     Set(value As Object) 
      m_total_received = Value 
     End Set 
    End Property 
    Private m_total_received As Object 
End Class 

Public Class RootObject 
    Public Property addresses() As List(Of Address) 
     Get 
      Return m_addresses 
     End Get 
     Set(value As List(Of Address)) 
      m_addresses = Value 
     End Set 
    End Property 
    Private m_addresses As List(Of Address) 
End Class 

엔드 모듈 나는 당신이 감사