質問

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を取得し、「フラグ」、「ServicePerismiss」などのJSON文字列値を取得する方法を取得する方法です。

fix:すみません、C#を使用してこれを行います。

役に立ちましたか?

解決

注:JavaScriptSerializerは、実際には私がこれまでにベンチマークした中で最も遅いJSONシリアイザーです。そんなに私はそれを削除しなければなりませんでした 私のベンチマーク 時間がかかりすぎていた(> 100倍遅い)。

とにかく、これは簡単に解決できます ServiceStack.TextのJSONシリアイザー:

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);

他のヒント

    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);

PHPのようなC#では、JSONをその場でオブジェクトに変換する方法を見ていません。 C#でコンバージョンを行うには、まずこのクラスを作成する必要があります。

あなたの場合、あなたはこのようにすることができます

//クラスを定義します

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 responseFromServer =
            // lines split for readability
  "{\"flag\":true,\"message\":\"\",\"result\":{\"ServicePermission\":true,"
  + "\"UserGroupPermission\":true}}";
        var serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
        var responseValue = serializer.Deserialize<Response>(responseFromServer);

    //access     
    responseValue.result.ServicePermission
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top