0

如果我有一个简单的 JSON 对象,它写在脚本标签下的 html 文档空间中(如下所示),我如何轻松地将它加载到 Silverlight 中?我需要将下面两个数组中的每一个加载到 .NET 中它们自己的 String[] 中,并且对于它加载的 Player 对象中的哪些数组不需要是动态的,它总是只是这两个。

谢谢!!!

Player = {
    Names: ["name 1","name 2","name 3"],
    Files: ["file 1","file 2","file 3"]
}

在伪代码中:

String[] Names = Page.Javascript.Player.Names;
String[] Files = Page.Javascript.Player.Files;
4

2 回答 2

0

试试这个正则表达式:

Player[^;,N]+Names ?: ?(\[[^\]]*\])[^F]+Files ?: ?(\[[^\]]*\])

这个正则表达式将匹配上面的字符串。结果组 1 和 2 将包含带有 Names 和 Files 字符串的 json 数组。还要检查这个小提琴

下一步就是将这两个组放到一个 json 解析器或另一个正则表达式中,然后你就有了你的字符串。

于 2013-04-22T06:17:57.120 回答
0

如果你有更多的 Json 解析,你可以使用 .Net Json helpers inSystem.Json dll

var jsonObj = (JsonObject)JsonArray.Parse("{ Names: ['name 1','name 2','name 3'],  Files: ['file 1','file 2','file 3']}");
// You need to cast JsonValue in string
string[] names = (jsonObj["Names"] as JsonArray).Select(j => (string)j).ToArray();
string[] files = (jsonObj["Files"] as JsonArray).Select(j => (string)j).ToArray();

您可以使用DataContractJsonSerializer在对象中转换 Json...

查看更多http://msdn.microsoft.com/fr-fr/library/cc197957(v=vs.95).aspx

于 2013-04-25T13:12:27.427 回答