[英]How to get a nested object from an json parent array in c#
在 C# Controller.cs 中,如何從“父”對象獲取“子”或“嵌套”對象。 我目前能夠檢索非嵌套對象的值,但我還需要能夠獲取某些子對象的值。
請參閱下面我當前工作的代碼,該代碼在對象未嵌套時實際檢索數據。 我能夠獲得 invoiceNumber、email 和 paymentMethod 的值。
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
var obj = JObject.Parse(result);
string invoiceNumber = (string)obj["invoiceNumber"];
string email = (string)obj["email"];
string paymentMethod = (string)obj["paymentMethod"];
}
現在,當我嘗試獲取嵌套對象的數據時,我只是重新調整為 NULL。 當我在 Visual Studio JSON Visualizer 中調試時,這些值實際上並不為空,它們具有值,但我只是不知道如何編寫我需要的語法來獲取這些“子”或“嵌套”對象。 因此,正如您在下面的代碼中看到的那樣,我嘗試以我能想到的各種方式調用 amountSaved 的這個值,但它每次都返回 NULL。
string rate = (string)obj["discounts.[0].amountSaved"];
string rate2 = (string)obj["discounts.amountSaved"];
string rate3 = (string)obj["discounts amountSaved"];
string rate4 = (string)obj["discounts:amountSaved"];
string rate5 = (string)obj["{discounts}:amountSaved"];
string rate6 = (string)obj["{discounts}.amountSaved"];
string rate7 = (string)obj["discounts.{amountSaved}"];
string rate8 = (string)obj["{discounts.amountSaved}"];
我認為解決方案可能類似於我首先調用父對象,在這種情況下稱為折扣,然后在句點或冒號或空格(。:) 或其他東西之后,我輸入子對象的名稱,在這種情況下是節省的金額。 那沒有用。
請看我下面的截圖。 這是我在 Visual Studio 中調試並使用 JSON Visualizer 的時候。 您可以看到我所說的折扣是具有子值(例如 amountSaved)的父對象的意思。 您還可以看到它的值為 0.75。 您還可以看到我所說的其他未嵌套的值是什么意思,我可以像 shippingMethod 一樣抓取這些值。
我怎樣才能做到這一點? 謝謝你。
當你使用方剎車時,你不應該放。 它們之間。 只有當你有反序列化對象時,你才能省略方括號並使用點語法,而不僅僅是解析它
string rate = (string)obj["discounts"][0]["amountSaved"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.