簡體   English   中英

C#在Asp.net中訪問JSON Stream Get.response數據

[英]C# Accessing JSON Stream Get.response Data in Asp.net

我是C#的新手,正嘗試與服務器聯系並從服務器接收數據。 我可以成功接收數據,但是我不知道如何訪問對象的屬性。 我想要的是僅顯示SessionID,例如“ biRvqpChQZf7Cujy5CuW0PjU1R7gIp”

    WebRequest LoginRequest = WebRequest.Create("xxx");
    LoginRequest.Method = "GET";
    WebResponse LoginResponse = LoginRequest.GetResponse();

    Stream LoginResponseStream = LoginResponse.GetResponseStream();
    StreamReader reader = new StreamReader(LoginResponseStream);
    string responseFromServer = reader.ReadToEnd();

    string TheText = new JavaScriptSerializer().Serialize(responseFromServer);
    Label1.Text = TheText;

正如TheText現在的結果是:

“{\\” utLogon_response \\ “:{\\”的SessionID \\ “:\\” rP99mnHAFwI840xVJMDOJpcgmE2l6z \\ “}}”

這是HTML中的“手動”對象:

在此處輸入圖片說明

您需要反序列化

在此示例中,RootObject應該是您的類:

*如果您沒有get; set;的課程; 屬性,您可以從以下網站創建它: http : //json2csharp.com/

只需將json字符串粘貼到該網站(json2csharp)中,您將獲得所有財產。

JavaScriptSerializer oJS = new JavaScriptSerializer();
RootObject oRootObject = new RootObject();
oRootObject = oJS.Deserialize<RootObject>(Your JSon String);

一步步

假設您的json是:

string TheText =  "{\"utLogon_response\":{\"SessionID\":\"rP99mnHAFwI840xVJMDOJpcgmE2l6z\"}}";

這些是基於json的類:

public class UtLogonResponse
{
    public string SessionID { get; set; }
}

public class RootObject
{
    public UtLogonResponse utLogon_response { get; set; }
}

然后使用此代碼:

   JavaScriptSerializer oJS = new JavaScriptSerializer();
   RootObject oRootObject = new RootObject();
   oRootObject = oJS.Deserialize<RootObject>(TheText);

   var yourSessionId = oRootObject.utLogon_response.SessionID; //Done !

您需要創建一個對象,然后反序列化而不是序列化它。 您可以使用JSON.net反序列化它們。

class Test
{
   public string SessionID { get; set; }
}

//after getting response from server
Test tmp = JsonConvert.DeserializeObject<Test>(responseFromServer);
Label1.Text = tmp.SessionID; 

以下鏈接可能對您有很大幫助:

https://www.newtonsoft.com/json/help/html/SerializingJSON.htm

Newtonsoft JSON反序列化

您是否嘗試使用字符串SessionId屬性創建utLogon_response並執行以下操作:var text = Jsonconvert.DeserializeObject(responseFromServer)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM