현재 Newsoft JSON .NET 라이브러리를 사용하여 VB.net에서 처리하는 웹 서비스에서 개체를 가져 오는 API를 작성하고 있습니다.Newsoft JSON .NET VB.net에서 개인 속성을 사용하여 개체에 deserializing
차량 목록에 Vehicles라는 JSON 배열을 deserialize하고 있습니다.
여기서 중요한 코드 조각입니다 : 여기
Public Class VehicleList
Public Vehicles() As Vehicle
End Class
Public Class Vehicle
Public Property licence_plate_number As String
End Class
우리는 JSON을 잡고 웹 클라이언트를 가지고있는 개체에 넣어.
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
어쨌든 비공개 멤버를 직접 serialize 할 수는 없습니다. 그러나 해결책이 있습니다 (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
JSON에서 'Vehicle'에 대해 무엇을보고 싶습니까? 'RegistrationNumber' 또는'licence_plate_number'? – dbc