如何比较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条件下不接受,更准确地说,字符串没有得到比较…有解决方案吗?

如何比较c#中解析的json值

我怀疑直接的问题是你的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