C#在未知字符串附近查找字符串

时间:2018-03-11 17:54:52

标签: c# json string response var

我做了一个请求并得到了回复,除了一个数字和单词组合外,文本都是一样的。我试图搜索每个响应不同的ID。有没有办法从该ID中找到值或字符串。

格式如下:

"prize_ids":["przhpctvsumtpckmnrh"]

完整回复= https://api.sliver.tv/v1/channel/usr0000000000000001/list_programs?number=20&need_raffles=true

只需知道我是如何做到这一点的。 Thanx提前

4 个答案:

答案 0 :(得分:0)

您可以使用String.Replace,例如:

string blah = "test123";
string id = blah.Replace("test", "");

这个给出了一些提示如何将json推入动态对象:

Deserializing json to anonymous object in c#

答案 1 :(得分:0)

收到回复后,将“prize_id”存储在变量中,然后转到

string.replace(“”,“”)

答案 2 :(得分:0)

您可以使用contains来检查回复的有效性,并replace从中获取ID。

//Returns true if the fulltext contains the mytext
public static bool FindMyString(string fullText, string myText)
{
    return fullText.Contains(myText);
}

//Returns the id from the string
public static string GetDataFromString(string fullText, string myText)
{
    return fullText.Replace(myText, "");
} 

要查找请求的prize_id,如果您知道prize_id有多少个字符,那么您可以使用

找到它
public static string FindPrizeId(string fullText, int countOfPrizeId)
{
    return fullText.Substring(0,countOfPrizeId);
}

答案 3 :(得分:0)

您可以使用QuickType作为起点从JSON响应生成POCO,然后您可以使用它将JSON转换为可在C#中使用的对象。

解析JSON并尝试substring / replace / contains是一个脆弱的解决方案,它不会处理响应中与空格的任何差异(例如换行符,空格等)。

void Main()
{
    var json = "Your JSON string here...";

    var response = JsonConvert.DeserializeObject<Response>(json);
    var allPrizeIds = response.Body.Where(b => b.PrizeIds != null)
                                   .SelectMany(b => b.PrizeIds);

    var matchingPrizes = allPrizeIds.Where(p => p == "przv3d75ezcrqf1xy6b");

    allPrizeIds.Dump();
}

public class Response
{
    [JsonProperty("body")]
    public List<Body> Body { get; set; }
}

public class Body
{
    [JsonProperty("prize_ids")]
    public List<string> PrizeIds { get; set; }
}