簡體   English   中英

"如何從 C# 中的 json 父數組中獲取嵌套對象"

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM