【问题标题】:Check if user is on list检查用户是否在列表中
【发布时间】:2017-01-28 18:35:08
【问题描述】:

我在 JSON 文件中有数组。文件如下所示:

["Maverick", "rick", "Rick", "prick", "rick_07"]

我有一个用户名。我想检查这个用户名是否在数组中。

public string UserToCheck = "rick";

所以我正在从 URL 读取 json 文件...

using (var webClient = new System.Net.WebClient())
{
    var json = webClient.DownloadString("http://example.ex/users.json");
    // Here I want to check if user is on list
    }
}

但是如何检查“UserToCheck”是否与数组中的一个用户完全匹配?

【问题讨论】:

  • 在 Parsing a JSON File 上做一个简单的谷歌搜索,或者在谷歌搜索 C# stackoverflow how to check for a string inside json array 中执行此操作
  • 我需要解析这个文件吗?
  • 如果你真的有这么少的数据,只需使用 String.Contains。但是,如果您有更多,解析可能会提供更好的性能。
  • no..在这种情况下使用 .Contains() 将不起作用,请离开此页面 2 秒钟,然后在 C# 解析 Json 上进行简单的谷歌搜索。来吧...
  • @LuisTeijon 你提出的问题根本不是 C#...

标签: c# arrays json contains exists


【解决方案1】:

您可以使用出色的 Newtonsoft Json Library 解析您的 Json:

var users = JsonConvert.DeserializeObject<List<string>>(json);    
users.Contains(UserToCheck);

由于区分大小写,您可以使用 LINQ:users.Any(u =&gt; String.Equals(u, UserToCheck, StringComparison.OrdinalIgnoreCase))

【讨论】:

  • 您的代码正是我所需要的。完美运行!非常感谢!
【解决方案2】:

尝试使用 JSON 解析来解析对象。这需要将 JSON 字符串对象放入 JSON.Parse 方法中。

这部分可能会丢失:

JObject jObj = JObject.Parse(json);
Console.WriteLine(jObj);

有用的链接:http://www.newtonsoft.com/json/help/html/ParseJsonObject.htm http://masnun.com/2011/07/08/quick-json-parsing-with-c-sharp.html

要检查字符串中的名称,请使用 C# 将名称分解为一个列表并遍历该列表以检查结果。

【讨论】:

    猜你喜欢
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多