You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET使用Newtonsoft解析JSON:获取payload下的result等字段

VB.NET解析JSON获取深层字段方法

你可以基于当前使用的Newtonsoft.Json库(JObject),通过以下两种方式获取JSON深层节点的信息:

方法一:直接用SelectToken指定完整路径

SelectToken支持通过点分隔的路径直接定位深层字段,适合快速获取单个节点:

Dim json As String = str
Dim parseJson As JObject = JObject.Parse(json)

' 你已实现的code字段获取
Dim code As String = parseJson.SelectToken("code").ToString()
MsgBox("响应码: " + code)

' 获取payload.transaction.result
Dim transactionResult As String = parseJson.SelectToken("payload.transaction.result").ToString()
MsgBox("交易结果: " + transactionResult)

' 其他深层字段示例
Dim amount As String = parseJson.SelectToken("payload.transaction.amount").ToString()
MsgBox("交易金额: " + amount)

' 获取level3层级的目的地国家码
Dim countryCode As String = parseJson.SelectToken("payload.transaction.level3.destination-country-code").ToString()
MsgBox("目的地国家码: " + countryCode)

方法二:逐层解析JObject(适合批量获取字段)

如果需要一次性读取多个深层字段,先逐层获取对应JObject再读取字段会更清晰:

Dim json As String = str
Dim parseJson As JObject = JObject.Parse(json)

' 逐层获取嵌套对象
Dim payload As JObject = CType(parseJson("payload"), JObject)
Dim transaction As JObject = CType(payload("transaction"), JObject)
Dim level3 As JObject = CType(transaction("level3"), JObject)

' 读取transaction下的多个字段
Dim result As String = transaction("result").ToString()
Dim transactionId As String = transaction("id").ToString()
Dim cardType As String = transaction("card-type").ToString()

' 读取level3下的字段
Dim orderDate As String = level3("order-date").ToString()

' 批量展示结果
MsgBox($"交易结果: {result}, 交易ID: {transactionId}, 卡类型: {cardType}")

注意事项

  • 空值处理:如果字段可能不存在,建议先判断非空避免报错:
    Dim result As String = If(transaction("result") IsNot Nothing, transaction("result").ToString(), "未获取到结果")
    
  • 类型转换:数值型字段(如amount)可转换为对应数据类型:
    Dim amountDecimal As Decimal = Convert.ToDecimal(transaction("amount").ToString())
    

内容的提问来源于stack exchange,提问作者Steve

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 03:33:28