我是c#的初学者,我正在创建一个应用程序,其中登录页面在url中请求PHP文件并且它发送Json数据作为响应我能够解码Json数据,但解码数据无法用于字符串比较如下
计划
private async void Button_Click(object sender, RoutedEventArgs e)
{
var username = usernames .Text;
var password = passwords .Password;
var postMessage = new StringContent(string.Format("username={0}&password={1}", username, password), Encoding.UTF8 , "application/x-www-form-urlencoded");
var response = await (new HttpClient()).PostAsync("http://xxxxx.xx.xxx/xlogin.php", postMessage);
var responseBody = await response.Content.ReadAsStringAsync();
var jsonString = responseBody ;
//remove "{" and "}" from sting
var result = jsonString.Replace("{", "").Replace("}", "");
//separate property name from it's value
var pair = result.Split(':');
//property will contain property name : "result"
var property = pair[0];
//value will contain property value : "Invalid"
var value = pair[1];
// String van=value .ToString() ;
MessageBox.Show(value);
if(value=="Valid")
{
Messagebox.show("success");
}
else
{
Messagebox.show("Error");
}
}
来自网址的回复 来自网址的Json回复是{"结果":"无效"},但验证失败并且验证成功{"结果":"有效"}
问题 每次我得到"有效"从url它不接受if条件,更确切地说字符串没有被比较......任何解决方案?
答案 0 :(得分:2)
我怀疑当前的问题是您的pair[1]
值仍然以双引号开头并结束 - 所以如果您将其打印出来,您将会看到
"Value"
而不是
Value
您可以手动修改它们,但我强烈建议您使用JSON库。没有充分的理由手动完成所有这些操作,并且尝试这样做很可能会导致代码变得脆弱。
例如,使用Json.NET就像:
一样简单string json = "{\"result\":\"Valid\"}";
JObject parsed = JObject.Parse(json);
string result = (string) parsed["result"];
Console.WriteLine(result); // Prints Valid