我需要從 HTTP 回應中讀取一個值。這是我嘗試獲取(描述)值的回應示例:
{
"result":{
"code":"200.300.404",
"description":"successful"
},
"buildNumber":"1f9@2021-12-23 09:56:49 0000",
"timestamp":"2021-12-25 17:22:35 0000",
"ndc":"8976eaedf8da"
}
這是我的代碼
Dictionary<string, dynamic> responseData;
string data = "entityId=8a8294174d0595bb014d05d82e5b01d2";
string url = "https://test.oppwa.com/v1/checkouts/" CheckoutId "/payment?" data;
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "GET";
request.Headers["Authorization"] = "Bearer xxxx";
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
// var s = new JavaScriptSerializer();
responseData = JsonSerializer.Deserialize<Dictionary<string, dynamic>>(reader.ReadToEnd());
reader.Close();
dataStream.Close();
}
// If responseDate.Description=success then enroll user and register the payment
var res = responseData["result"];
// I'm trying to do this but not working
var res = responseData["result"]["description"];
return responseData;
任何幫助表示贊賞謝謝
uj5u.com熱心網友回復:
您可以使用JToken或JObject的Newtonsoft.Json.Linq。
例如,如果您的回應格式如下:
{
"result":{
"code":"200.300.404",
"description":"successful"
},
"buildNumber":"1f9@2021-12-23 09:56:49 0000",
"timestamp":"2021-12-25 17:22:35 0000",
"ndc":"8976eaedf8da"
}
為此,您可以使用以下代碼:
...
string webResponseAsString = reader.ReadToEnd();
dynamic dynamicResult = JToken.Parse(webResponseAsString);
string description = dynamicResult.result.description
有關更多詳細資訊,您可以訪問此鏈接:
使用 JSON.NET 進行動態 JSON 決議
使用動態查詢 JSON
決議動態JSON資料時用什么比較好:JToken or c#built in dynamic type
uj5u.com熱心網友回復:
試試這個
StreamReader reader = new StreamReader(dataStream);
var json = reader.ReadToEnd();
...
var jsonObject=JObject.Parse(json);
var result=jsonObject["result"];
var description = jsonObject["result"]["description"];
// or
var description =result["description"];
描述值
successful
uj5u.com熱心網友回復:
responseData["result"].description
會給你“成功”的JValue。
雖然還有一些其他的問題。反序列化需要一個 JsonSerializer 的實體,它不是靜態方法。這是一個不使用字典的完整示例。
var response = @"
{
""result"":{
""code"":""200.300.404"",
""description"":""successful""
},
""buildNumber"":""1f9@2021-12-23 09:56:49 0000"",
""timestamp"":""2021-12-25 17:22:35 0000"",
""ndc"":""8976eaedf8da""
}
";
var responseData = new JsonSerializer()
.Deserialize<dynamic>(
new JsonTextReader(new StringReader(response)));
responseData.result.description; //successful
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/393731.html
標籤:C# 网站 json asp.net核心 .net核心
