【发布时间】:2015-01-23 23:51:02
【问题描述】:
我的 JSON 看起来像这样:
{
"records": [{
"skills": "",
"u_past_assignment_groups": "",
"urgency": "3",
"correlation_id": "",
"u_program_name": "",
"u_software_name": "",
"group_list": ""
}]
}
(这是一个截断的版本。)但关键是它是一个键值对的单元素数组。
在原生 JavaScript 中,使用 JSON.parse 或 eval 将这个 JSON 转换为实际的键/值对数组是一个非常简单的步骤,但是在 .Net 中我无法弄清楚如何反序列化它JSON 变成任何有意义的东西。我已经尝试了JavaScriptSerializer.Deserialize 和JavaScriptSerializer.DeserializeObject 的所有排列组合。无论我尝试什么,我都会继续收到一些关于无法反序列化或无法转换的错误。有人可以看看这段代码 sn-p 并告诉我如何(在本机 .Net 中)我可以将其反序列化为键/值对的列表或数组吗?
我必须创建自己的对象来存储这些数据吗?我的意思是,我不想这样做。看起来它应该很容易符合原生 .net 数据结构。
//process response
Stream respStream = resp.GetResponseStream();
StreamReader respReader = new StreamReader(respStream);
string response = respReader.ReadToEnd();
respStream.Close();
JavaScriptSerializer jsDes = new JavaScriptSerializer();
//***This is the part I can't figure out.***
var objResp = jsDes.DeserializeObject(response);
Dictionary<string, string>[] dicResp = (Dictionary<string, string>[])objResp;
//******************************************
pOutput.InnerText = "Incident Number: " + dicResp[0]["key"];
【问题讨论】:
-
这有点令人困惑,但请不要将代码 sn-ps 仅用于代码块。为此使用代码块。代码 sn-ps 用于可在浏览器中运行的代码。
-
我明白了。道歉。我读了这个论坛好一点,但很少发帖。我会一直记住的。
标签: javascript c# asp.net json