0

我有一个包含数组的 .js 脚本:

js的输出是这样的:

var foo=
[
    {
        "bar1":"value1",
        "bar2":"value2"
        // And so on...            
    }
]

我无权访问 js 源,因此无法输出为 JSON 和反序列化。

我只能使用 将其作为字符串获取WebClient,但我如何解析它并创建一个数组/字典并在 C# 中处理它?

4

3 回答 3

1

您应该考虑调用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
于 2013-09-06T20:59:28.967 回答
0

var foo = new JavaScriptSerializer().Deserialize<List<YourModelHere>>(YourString);

于 2013-09-06T21:04:10.443 回答
0

您可以使用 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 
于 2013-09-06T21:08:09.103 回答