c# - 如何获取 JSON 字符串值?

标签 c# json serialization

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/

相关文章:

c# - 将 json 反序列化为具有默认私有(private)构造函数的类的 C# 对象

java - Java中多个类可以序列化同一个对象吗?

php - 动态代理类的自定义 foreach 结果 - 魔术方法?

java - Jackson:JsonBackReference - 无限递归问题

c# - 在代码隐藏中访问动态生成的表行

c# - 尝试更改 MainPage 但新页面上的 WebView 无法加载站点。但是当我在应用程序启动时将其设置为主页时它成功了

c# - 如何在循环中使用 await

c# - 错误 "A template containing a class feature must end with a class feature"

json - 在 Swift 中解码不同类型的 JSON 数组

javascript - 将 JSON 解析为可用的东西