在silverlight中访问和加载JSON数组到.net字符串[]中

本文关键字:net 字符串 数组 JSON silverlight 访问 加载 | 更新日期: 2023-09-27 18:10:26

如果我有一个简单的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;

在silverlight中访问和加载JSON数组到.net字符串[]中

试试这个regex:

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

这个正则表达式将匹配上面的字符串。结果组1和2将包含您的json数组与名称和文件'的字符串。

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

如果你有更多的Json解析,你可以使用。net Json助手在System.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