如何在C#中比较解析的json值

时间:2014-03-12 06:58:59

标签: c# json windows-phone-8

我是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条件,更确切地说字符串没有被比较......任何解决方案?

1 个答案:

答案 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