現在、私は、VB.netでNewsoft JSON .NETライブラリを使用してWebサービスからオブジェクトを取得しているAPIを作成しています。Newsoft JSON .NET VB.netのプライベートプロパティを持つオブジェクトへの逆シリアル化
私は車両のリストにVehiclesというJSON配列を逆シリアル化しています。
ここで重要なコードスニペットです:ここで
Public Class VehicleList
Public Vehicles() As Vehicle
End Class
Public Class Vehicle
Public Property licence_plate_number As String
End Class
我々はJSONをつかむWebクライアントを持っており、オブジェクトにそれを置きます。
Public Class dcVehicles
Private Property _Vehicles As VehicleList
Public ReadOnly Property Vehicle As Vehicle()
Get
Return _Vehicles.Vehicles
End Get
End Property
Public Sub Refresh()
_Vehicles = JsonConvert.DeserializeObject(Of VehicleList)(wcReply, jsSettings)
End Sub
End Class
もう少しです(それをカット)。 すべてが意図どおりに機能しているため、json netは一連の車両を作成しています。
私は車両クラスのプロパティをプライベートで読み取り専用にしようとしていますが、APIを使用するアプリケーションではこれらを設定できません。
問題は、私は私有財産を維持し、読み取り専用として以下許可するように車両クラスのパブリックプロパティを変更しようとした次のとおりです。
Public Class Vehicle
Friend Property licence_plate_number As String
Public ReadOnly Property RegistrationNumber As String
Get
Return licence_plate_number
End Get
End Property
End Class
私はその後、取得問題はJSON.netができないことです乗り物に人をつける。 3つのクラスはすべて同じ名前空間にあります。 フレンド/プライベートアクセスレベル修飾子でlicence_plate_numberを試しましたが、依然としてJson netがオブジェクトにデータを入力できません。
唯一の方法は、パブリックにすることです。
誰にも回避策がありますか?それとも、私は何か簡単なものを逃していますか
おかげ
jsonのサンプルを提供できますか? – djv
とにかく、プライベートメンバーを直接シリアル化することはできません。しかし、ソリューションがあります。(C#)http://stackoverflow.com/questions/10189471/json-net-serialize-private-members-and-not-readonly-properties、http://stackoverflow.com/questions/32008869/json-net-serialize-specific-private-field – djv
「Vehicle」のJSONで何を見たいですか? 'RegistrationNumber'または' licence_plate_number'? – dbc