繁体   English   中英

从 C# 中的 JSON 对象获取值

[英]Get value from JSON object in c#

我从一个 url 得到 JSON 响应,我在jObj2使用以下代码捕获它

dynamic jObj2 = JsonConvert.DeserializeObject(resultCheck.Content.ReadAsStringAsync().Result);
Response.Write("<p>"+jObj2+"<p>");

输出是:

{
    "method":"check",
    "trace":"1234/12345/123456f5",
    "order":{
        "ref":"2910730E3E90D40F59BC9B738E71EF7AD9DF679C93D34EAEADA6775216F12C13",
        "cartid":"1723873570174343",
        "test":1,
        "amount":"30.00",
        "currency":"USD",
        "description":"Descsdaff",
        "status":{
            "code":3,
            "text":"Paid"
        },
        "transaction":{
            "ref":"019463997038",
            "type":"sale",
            "class":"ECom",
            "status":"A",
            "code":"919514",
            "message":"Authorised"
        },
        "card":{
            "type":"Visa Credit",
            "last4":"0002",
            "expiry":{
                "month":3,
                "year":2017
            }
        },
        "customer":{
            "email":"email@email.com",
            "name":{
                "forenames":"James",
                "surname":"Senior"
            },
            "address":{
                "line1":"Denvour",
                "city":"Denvour",
                "country":"US"
            }
        }
    } }

我如何访问单个值

carid code ref ...

我试过下面的代码,但它给了我错误

var jsonData2 = (JObject)JsonConvert.DeserializeObject(resultCheck.Content.ReadAsStringAsync().Result);
    
Response.Write("<br> jsonData2['order']['description'].ToString() " + jsonData2["order"]["url"].ToString())

错误信息

  Object reference not set to an instance of an object. Description: An
 unhandled exception occurred during the execution of the current web
 request. Please review the stack trace for more information about the
 error and where it originated in the code.
 
 Exception Details: System.NullReferenceException: Object reference not
 set to an instance of an object.
 
 Source Error:
 
 
 Line 65:                 Response.Write("<br>"); Line 66:             
 Response.Write("<br>"); Line 67:                 Response.Write("<br>
 jsonData2['order']['description'].ToString() " +
 jsonData2["order"]["description"].ToString()); Line 68:  Line 69:            
 }

我如何从 json 对象访问单个值

还没有尝试过,但我认为,这是最相对的答案

https://stackoverflow.com/a/4749755/5458824

这可能有助于获得所需的输出

JToken token = JObject.Parse(JsonConvert.DeserializeObject(resultCheck.Content.ReadAsStringAsync().Result));
Response.Write("<br> token.SelectToken("description") " + token.SelectToken("description"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM