繁体   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