根据字符串参数选择Json 属性
Selecting Json Property based on string parameter
我正在与 Json.net 合作,以下是我的 Json 回复 Class
Imports Newtonsoft.Json
Imports AustinHarris.JsonRpc
Public Class JsonResponse
Inherits AustinHarris.JsonRpc.JsonResponse
<JsonProperty(PropertyName:="token")> Public Property token As String
<JsonProperty(PropertyName:="product")> Public Property product As String
<JsonProperty(PropertyName:="status")> Public Property status As String
End Class
如您所见,我的 Json 对象有一些额外的自定义属性。我正在使用以下代码创建我的 Json 对象。
jsonrpc_response = JsonConvert.DeserializeObject(Of JsonResponse)(json_string)
最后我有一个 Json对象,其属性为令牌、产品和状态。现在我想做的是使用字符串作为参数访问这些属性,例如
MsgBox ("This is my token: " & jsonrpc_response("token"))
MsgBox ("This is my product: " & jsonrpc_response("product"))
但是这不起作用,因为无法以这种方式访问这些属性。如何根据字符串作为 属性 名称参数访问 属性?
我找到了解决方案,将以下功能添加到 JsonResponse Class 完美无缺!
Public Function GetPropValue(src As Object, propName As String) As Object
Return src.[GetType]().GetProperty(propName).GetValue(src, Nothing)
End Function
因此,
MsgBox("This is my token: " & jsonrpc_response.GetPropValue(jsonrpc_response, "token"))
我正在与 Json.net 合作,以下是我的 Json 回复 Class
Imports Newtonsoft.Json
Imports AustinHarris.JsonRpc
Public Class JsonResponse
Inherits AustinHarris.JsonRpc.JsonResponse
<JsonProperty(PropertyName:="token")> Public Property token As String
<JsonProperty(PropertyName:="product")> Public Property product As String
<JsonProperty(PropertyName:="status")> Public Property status As String
End Class
如您所见,我的 Json 对象有一些额外的自定义属性。我正在使用以下代码创建我的 Json 对象。
jsonrpc_response = JsonConvert.DeserializeObject(Of JsonResponse)(json_string)
最后我有一个 Json对象,其属性为令牌、产品和状态。现在我想做的是使用字符串作为参数访问这些属性,例如
MsgBox ("This is my token: " & jsonrpc_response("token"))
MsgBox ("This is my product: " & jsonrpc_response("product"))
但是这不起作用,因为无法以这种方式访问这些属性。如何根据字符串作为 属性 名称参数访问 属性?
我找到了解决方案,将以下功能添加到 JsonResponse Class 完美无缺!
Public Function GetPropValue(src As Object, propName As String) As Object
Return src.[GetType]().GetProperty(propName).GetValue(src, Nothing)
End Function
因此,
MsgBox("This is my token: " & jsonrpc_response.GetPropValue(jsonrpc_response, "token"))