![](/img/trans.png)
[英]Setting Authorization Headers and accessing data response in Sabre in ASP.NET MVC C#
[英]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
您是否尝试使用字符串SessionId属性创建utLogon_response并执行以下操作:var text = Jsonconvert.DeserializeObject(responseFromServer)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.