C# 如何获取JSON字符串值?

C# 如何获取JSON字符串值?,c#,json,serialization,C#,Json,Serialization,responseFromServer值是获取一个webservice,然后如何获取JSON字符串值,如“flag”、“Servicepermission” 词缀:对不起,用c来做这个 var responseFromServer = // lines split for readability "{\"flag\":true,\"message\":\"\",\"result\":{\"ServicePermission\":true," + "\"UserGroupPermiss

responseFromServer值是获取一个webservice,然后如何获取JSON字符串值,如“flag”、“Servicepermission”

词缀:对不起,用c来做这个

var responseFromServer =
  // lines split for readability
  "{\"flag\":true,\"message\":\"\",\"result\":{\"ServicePermission\":true,"
  +  "\"UserGroupPermission\":true}}";
var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
var responseValue = serializer.DeserializeObject(responseFromServer);
在c#like php中,我没有看到任何方法可以动态地将json转换为对象。要在c#中进行转换,必须首先为此创建一个类

对于你的情况,你可以这样做

//定义类

    if u are using jQuery u can do this

    var json=jQuery.parseJSON(responseFromServer);

    //acess
    alert(json.ServicePermission);

if you are asing microsoft ajax do this

var json=Sys.Serialization.JavaScriptSerializer.deserialize(responseFromServer,true);

    //acess
    alert(json.ServicePermission);
公共类响应
{
公共布尔标志{get;set;}
公共字符串消息{get;set;}
公共权限结果{get;set;}
}
公共类许可
{
公共布尔服务权限{get;set;}
public bool UserGroupPermission{get;set;}
}
var响应服务器=
//为了可读性而拆分行
{\'flag\':true、\'message\':\“\”、\'result\':{\'ServicePermission\':true
+“\“UserGroupPermission\”:true}}”;
var serializer=new System.Web.Script.Serialization.JavaScriptSerializer();
var responseValue=序列化程序。反序列化(responseFromServer);
//通路
responseValue.result.ServicePermission

注意:JavaScriptSerializer实际上是我测试过的最慢的JSON序列化程序。太多了,我不得不从中删除它,因为它花费的时间太长(>慢100倍)

无论如何,使用以下方法可以轻松解决此问题:

var response=JsonSerializer.DeserializeFromString(responseFromServer);
var permissions=JsonSerializer.DeserializeFromString(响应[“结果”]);
Console.WriteLine(响应[“标志”]+:“+权限[“服务权限”]);
为了完整性,这也适用于ServiceStack.Text.JsonSerializer:

var response = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(responseFromServer);
var permissions = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(response["result"]);
Console.WriteLine(response["flag"] + ":" + permissions["ServicePermission"]);
公共类响应
{
公共布尔标志{get;set;}
公共字符串消息{get;set;}
公共权限结果{get;set;}
}
公共类许可
{
公共布尔服务权限{get;set;}
public bool UserGroupPermission{get;set;}
}
var response=JsonSerializer.DeserializeFromString(responseFromServer);
Console.WriteLine(response.flag+“:”+response.result.ServicePermission);

很抱歉,使用c#来执行此操作。是的,它是。我有一个webservice,比如Authentication.ashx,我在default.aspx.cs中使用c#,我可以得到结果,然后想解析json字符串。答案是+1,但到json序列化程序的链接断开了。这是更新后的url:
var response = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(responseFromServer);
var permissions = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(response["result"]);
Console.WriteLine(response["flag"] + ":" + permissions["ServicePermission"]);
public class Response
{
    public bool flag { get; set; }
    public string message { get; set; }
    public Permisions result { get; set; }
}
public class Permisions
{
    public bool ServicePermission { get; set; }
    public bool UserGroupPermission { get; set; }
}

var response = JsonSerializer.DeserializeFromString<Response>(responseFromServer);
Console.WriteLine(response.flag + ":" + response.result.ServicePermission);