如何比较c#中解析的json值
本文关键字:json 何比较 比较 | 更新日期: 2023-09-27 17:49:54
我是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");
}
}
URL的响应当验证失败时,url的Json响应是{"result":"Invalid"},如果验证成功则{"result":"Valid"}
每次我从url得到"有效"时,它在if条件下不接受,更准确地说,字符串没有得到比较…有解决方案吗?
我怀疑直接的问题是你的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