将数组从 Javascript 传递到 C#
本文关键字:Javascript 数组 | 更新日期: 2023-09-27 18:30:25
我有一个包含数组的.js脚本:
js 的输出是这样的:
var foo=
[
{
"bar1":"value1",
"bar2":"value2"
// And so on...
}
]
我无法访问 js 源代码,所以我无法输出为 JSON 并反序列化。
我只能使用 WebClient
将其作为字符串获取,但是我如何解析它并创建一个数组/字典并在 C# 中处理它?
你应该考虑调用WebClient.DownloadString
。然后使用 JSON.Net
或其他任何东西进行解析
根据那里提供的示例
string json = @"{
""Name"": ""Apple"",
""Expiry"": "2008-12-28T00:00:00",
""Price"": 3.99,
""Sizes"": [
""Small"",
""Medium"",
""Large""
]
}";
JObject o = JObject.Parse(json);
string name = (string)o["Name"];
// Apple
JArray sizes = (JArray)o["Sizes"];
string smallest = (string)sizes[0];
// Small
var foo = new JavaScriptSerializer().Deserialize<List<YourModelHere>>(YourString);
您可以使用
JavaScriptSerializer
来反序列化该字符串:
string str=
@"var foo =
[
{
""bar1"":""value1"",
""bar2"":""value2""
}
]";
JavaScriptSerializer js = new JavaScriptSerializer();
var o = js.Deserialize<Dictionary<string,string>[]>(str.Substring(str.IndexOf('[')));
结果:
Dictionary<String,String> (2 items)
Key Value
------ --------
bar1 value1
bar2 value2