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);
responseFromServer值是获取一个webservice,然后如何获取JSON字符串值,比如"flag","Servicepermission"??
affix:对不起,用c#做这个。
最佳答案
注意:JavaScriptSerializer 实际上是我测试过的最慢的 JSON 序列化程序。如此之多,以至于我不得不将其从 my benchmarks 中删除因为它花费的时间太长(慢了 100 倍以上)。
无论如何,使用 ServiceStack.Text's JSON Serializer 很容易解决这个问题:
var response = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(responseFromServer);
var permissions = JsonSerializer.DeserializeFromString<Dictionary<string,string>>(response["result"]);
Console.WriteLine(response["flag"] + ":" + permissions["ServicePermission"]);
为了完整起见,这也适用于 ServiceStack.Text.JsonSerializer:
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);
关于c# - 如何获取 JSON 字符串值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4658266/