【发布时间】:2021-02-15 09:30:40
【问题描述】:
我正在尝试将 http web 响应解析为数组或其他东西,以便我可以处理这些信息。这是我得到的 json 响应(+ 更多,但我只是审查了格式):
{
"meta": {
"status": 200
},
"data": {
"account": {
"account_phone_number": "XXXXXXXX",
"account_email": "MAIL@hotmail.com"
},
"user": {
"id": "5f2b17e7836fc7010025aed3",
"age": 23,
}
}
}
如何将“用户”中的“id”写入控制台或文本框?
这是我的网络请求:
private void button1_Click(object sender, EventArgs e)
{
const string WEBSERVICE_URL = "url_here";
try
{
var webRequest = System.Net.WebRequest.Create(WEBSERVICE_URL);
if (webRequest != null)
{
webRequest.Method = "GET";
webRequest.Timeout = 12000;
webRequest.ContentType = "application/json";
webRequest.Headers.Add("x-auth-token", "Auth_token");
using (System.IO.Stream s = webRequest.GetResponse().GetResponseStream())
{
using (System.IO.StreamReader sr = new System.IO.StreamReader(s))
{
var jsonResponse = sr.ReadToEnd();
richTextBox1.AppendText(jsonResponse);
}
}
}
}
catch (Exception ex)
{
richTextBox1.AppendText("No workie");
}
}
我尝试了以下方法:
public class Test
{
public string meta {get;set;}
public string data {get;set;}
}
并尝试将 json 序列化为如下表:
JavaScriptSerializer js = new JavaScriptSerializer();
Test[] Tester = js.Deserialize<Test[]>(jsonResponse);
richTextBox1.AppendText(Tester);
但没有运气。任何人都可以在这里指出正确的方向吗?
【问题讨论】:
-
您转到quicktype.io 并将您的 json 粘贴到那里。它为您创建表示 json 的类,甚至向您展示(在代码 cmets 中)如何使用它们。结束
-
@Asphaug 您需要来自响应的所有信息还是只需要
user对象的id? -
@PeterCsala 我知道我需要什么标签,例如,我需要
id和age在user中。并且只有来自account的account_email。 -
@Asphaug 你可以使用与
JavaScriptSerializer不同的序列化程序吗?还是您必须满足的约束条件? -
@PeterCsala 我想我可以以任何可行的方式做到这一点。这只是我认为正确的解决方案。
标签: c# api httpwebrequest javascriptserializer