如何从Request.Url清理json字符串

本文关键字:清理 json 字符串 Url Request | 更新日期: 2023-09-27 18:06:51

我正在寻找一种方法来清理以下json字符串在c#中更有用。

"?{'"令牌'":' " I3dt-MIByyWD5-XqF6VT3hQSk8qvy9r6 '"}"

基本上就是为了把它剥离到

"token:I3dt-MIByyWD5-XqF6VT3hQSk8qvy9r6"或"I3dt-MIByyWD5-XqF6VT3hQSk8qvy9r6"

我认为a会很好地完成这一点,但不幸的是,我从来没有写过一个,有点迷失在如何得到我想要的使用一个。顺便说一句,解析是在c#中进行的。

EDIT:更正正则表达式可能不会做我想要的…我想格式化字符串..而不仅仅是验证它。

如何从Request.Url清理json字符串

最好将其解析为JSON对象,然后使用JSON API,从那里获得token键的值。

看看这个:http://msdn.microsoft.com/en-us/library/bb299886.aspx

有一个类,叫做JsonTextReader,你可以用它来解析。方法如下:

string jsonText = @"[""Europe"", ""Asia"", ""Australia"", ""Antarctica"",
 ""North America"", ""South America"", ""Africa""]";
using (JsonTextReader reader = new JsonTextReader(new
 StringReader(jsonText)))
{
    while (reader.Read())
    {
        if (reader.TokenClass == JsonTokenClass.String &&
            reader.Text.StartsWith("A"))
        {
            Console.WriteLine(reader.Text);
        }
    }
}

您可以尝试这样的方法。的,如果你有这样的"?{'"token'":'"I3dt-MIByyWD5-XqF6VT3hQSk8qvy9r6'"&'"other'":'"123'"}"链,就把它当作分离器。也清除字符"和'

static string MyParserJson(string sjson, string key)
{
    try
    {
        if (!(sjson.Contains("{") && sjson.Contains("}")))
            throw new ApplicationException("don't exist { or }");
        int inipos = sjson.IndexOf("{");
        int endpos = sjson.IndexOf("}");
        var myjson = sjson.Substring(inipos + "{".Length, endpos - (inipos + "{".Length));
        string[] ajson = myjson.Split('&');
        foreach (var keyval in ajson)
        {
            if (!keyval.Contains(":"))
                continue;
            string[] afind = keyval.Split(':');
            if (afind[0].Contains(key))
            {
                return afind[1].Replace("'"", "").Replace("''", "").Trim();
            }
        }
    }
    catch
    {
          //test
    }
    return string.Empty;
}

var uri = "?{'"token'":'"I3dt-MIByyWD5-XqF6VT3hQSk8qvy9r6'"}";
var token = MyParserJson(uri, "token");