如何获取JSON String值?

Net*_*205 3 c# json serializer

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);
Run Code Online (Sandbox Code Playgroud)

responseFromServer值是获取webservice,然后如何获取JSON字符串值,如"flag","Servicepermission"?

词缀:对不起,用c#来做这件事.

myt*_*thz 5

注意:JavaScriptSerializer实际上是我测试过的最慢的JSON Serializer.所以我不得不将它从我的基准测试中删除,因为它花了太长时间(> 100倍慢).

无论如何,这很容易使用ServiceStack.Text的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"]);
Run Code Online (Sandbox Code Playgroud)

为了完整性,这也适用于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);
Run Code Online (Sandbox Code Playgroud)