如何从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:更正正则表达式可能不会做我想要的…我想格式化字符串..而不仅仅是验证它。
最好将其解析为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");