簡體   English   中英

在 C# 中只返回來自 json HttpContext.Response 的鍵

[英]Return just Keys from json HttpContext.Response in C#

我有一個HttpContext.Response函數,它返回這個 json 響應:

{
    "[2-1] STORE[STORE_NBR]": 5026,
    "[2-1] STORE[STATE_PROV_CD]": "AR"        
}

現在,我只想返回鍵而不是值:

{
    [2-1] STORE[STORE_NBR],
    [2-1] STORE[STATE_PROV_CD]      
}

我嘗試評論 [1] 和 [2] 但這會導致異常,因為值是預期的。 怎樣才能達到這個結果?

Json 響應(如評論中所述)可以輕松反序列化為字典,其中KeyValuePairKeyValue都是字符串。 您可以這樣做:

using System.Linq;
using Newtonsoft.Json; // Can be installed as a NuGet package

然后

var dictionary = 
    JsonConvert.DeserializeObject<Dictionary<string,string>>(source);

一旦你有了字典對象,你就可以使用 Linq 只提取你想要的鍵並將它們變成一個列表。

List<string> keys =
    dictionary.Select(keyValuePair => keyValuePair.Key).ToList();

在哪里

const string source =
@"{
   ""[2 - 1] STORE[STORE_NBR]"": 5026,
   ""[2-1] STORE[STATE_PROV_CD]"": ""AR""        
  }";

這些代碼行格式化您指定的輸出:

Console.WriteLine(
    "Here are the keys:");
Console.WriteLine(
    $"{{{Environment.NewLine}{string.Join("," + Environment.NewLine, keys)}{Environment.NewLine}}}");

以下是鍵:[2 - 1] STORE[STORE_NBR],[2-1] STORE[STATE_PROV_CD]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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