我有一个包含数组的 .js 脚本:
js的输出是这样的:
var foo=
[
{
"bar1":"value1",
"bar2":"value2"
// And so on...
}
]
我无权访问 js 源,因此无法输出为 JSON 和反序列化。
我只能使用 将其作为字符串获取WebClient
,但我如何解析它并创建一个数组/字典并在 C# 中处理它?
我有一个包含数组的 .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);
您可以使用 aJavaScriptSerializer
反序列化该字符串:
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